实例介绍
【实例截图】
【核心代码】
package com.cn.gong.activity;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.DatePickerDialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.TrafficStats;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import com.cn.gong.database.DataSupport;
import com.cn.gong.database.MyDatePickerDialog;
public class Showmain extends Activity {
private TextView mg_up_total, mg_down_total, mg_total, mUp_total,
mDown_total, mliuliang_total, date_start_textview,
date_over_textview, liuliangzongbiaoti;
private Button date_start_btn, date_over_btn, search_btn, detail_data_app,show_now_button;
private int id_number_r = 0, id_number_t = 0;
public static final String RXG = "rxg";
public static final String TXG = "txg";
public static final String RX = "rx";
public static final String TX = "tx";
public static final String SHUTDOWN = "d";
public static final String NORMAL = "n";
public static final String RX3G = "3g下载流量";
public static final String TX3G = "3g上传流量";
public static final String RXT = "下载总流量";
public static final String TXT = "上传总流量";
public static final String flag = "first";
public static final String flagname = "nomber1";
public static boolean isLog = false;
private DataSupport minsert = new DataSupport(this);
private Calendar calendar = Calendar.getInstance();
private Calendar mcalendar = Calendar.getInstance();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
datainsert();
showdata();
alarmsave();
}
/**
*
* 方法说明:初始化应用程序
*
*/
private void init() {
mg_down_total = (TextView) findViewById(R.id.g_down_edit);
mg_up_total = (TextView) findViewById(R.id.g_up_edit);
mg_total = (TextView) findViewById(R.id.g_total_edit);
mUp_total = (TextView) findViewById(R.id.total_up_edit);
mDown_total = (TextView) findViewById(R.id.total_down_edit);
mliuliang_total = (TextView) findViewById(R.id.liuliang_total_edit);
liuliangzongbiaoti = (TextView) findViewById(R.id.liuliang_biaoti);
date_over_btn = (Button) findViewById(R.id.date_over_btn);
date_start_btn = (Button) findViewById(R.id.date_start_btn);
search_btn = (Button) findViewById(R.id.search_button);
detail_data_app = (Button) findViewById(R.id.chakan_apps_data);
show_now_button=(Button)findViewById(R.id.shownow_button);
show_now_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
liuliangzongbiaoti.setText(getResources().getString(R.string.now_liuliang_total));
showdata();
}
});
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
date_over_textview = (TextView) findViewById(R.id.date_over);
date_over_textview.setText(sdf.format(new Date()));
date_start_textview = (TextView) findViewById(R.id.date_start);
date_start_textview.setText(sdf.format(new Date()));
detail_data_app.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent it = new Intent(Showmain.this, Appsdata.class);
startActivity(it);
}
});
date_over_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
selectdate(date_over_textview);
}
});
date_start_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
selectdate(date_start_textview);
}
});
search_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
search_result();
}
});
}
/**
*
* 方法说明:两个日期之间进行搜索
*
*/
private void search_result() {
long g3down = 0, g3up = 0, g3total = 0, rxdown = 0, txup = 0, alltotal = 0;
String startdate = date_start_textview.getText().toString();
String overdate = date_over_textview.getText().toString();
Cursor r3gst = minsert.selectBettweenstart(startdate, overdate, RX3G);
Cursor r3gov = minsert.selectBettweenstop(startdate, overdate, RX3G);
Cursor t3gst = minsert.selectBettweenstart(startdate, overdate, TX3G);
Cursor t3gov = minsert.selectBettweenstop(startdate, overdate, TX3G);
Cursor r3gshutdown = minsert.selectbetweenday(RX3G, SHUTDOWN,
startdate, overdate);
Cursor t3gshutdown = minsert.selectbetweenday(TX3G, SHUTDOWN,
startdate, overdate);
liuliangzongbiaoti.setText(startdate "至" overdate "的流量");
if (r3gst.moveToNext()) {
int number = r3gst.getColumnIndex("liuliang");
g3down = r3gst.getLong(number);
int number_id_r3s = r3gst.getColumnIndex("id");
id_number_r = r3gst.getInt(number_id_r3s);
if (Showmain.isLog) {
Log.i("liuliang", "rxsearch_result_start_between_rx3g>>>"
g3down ">>>>>>>uppstart");
}
if (r3gov.moveToNext()) {
int number_id_r3o = r3gov.getColumnIndex("id");
id_number_t = r3gov.getInt(number_id_r3o);
if (id_number_r == id_number_t) {
} else {
int number1 = r3gov.getColumnIndex("liuliang");
g3down = r3gov.getLong(number1) - g3down;
}
}
while (r3gshutdown.moveToNext()) {
int number2 = r3gshutdown.getColumnIndex("liuliang");
g3down = r3gshutdown.getLong(number2) g3down;
}
g3down = g3down / 1024 / 1024;
mg_down_total.setText(g3down "MB");
}
if (t3gst.moveToNext()) {
int number3 = t3gst.getColumnIndex("liuliang");
g3up = t3gst.getLong(number3);
int number_id_t3s = t3gst.getColumnIndex("id");
id_number_r = t3gst.getInt(number_id_t3s);
if (t3gov.moveToNext()) {
int number_id_t3o = t3gov.getColumnIndex("id");
id_number_t = t3gov.getInt(number_id_t3o);
if (id_number_r == id_number_t) {
} else {
int number4 = t3gov.getColumnIndex("liuliang");
g3up = t3gov.getLong(number4) - g3up;
}
}
while (t3gshutdown.moveToNext()) {
int number5 = t3gshutdown.getColumnIndex("liuliang");
g3up = g3up t3gshutdown.getLong(number5);
}
g3up = g3up / 1024 / 1024;
mg_up_total.setText(g3up "MB");
g3total = g3down g3up;
mg_total.setText(g3total "MB");
}
Cursor rst = minsert.selectBettweenstart(startdate, overdate, RX);
Cursor rov = minsert.selectBettweenstop(startdate, overdate, RX);
Cursor tst = minsert.selectBettweenstart(startdate, overdate, TX);
Cursor tov = minsert.selectBettweenstop(startdate, overdate, TX);
Cursor rshutdown = minsert.selectbetweenday(RX, SHUTDOWN, startdate,
overdate);
Cursor tshutdown = minsert.selectbetweenday(TX, SHUTDOWN, startdate,
overdate);
if (rst.moveToNext()) {
int number6 = rst.getColumnIndex("liuliang");
rxdown = rst.getLong(number6);
int number_id_rs = rst.getColumnIndex("id");
id_number_r = rst.getInt(number_id_rs);
if (Showmain.isLog) {
Log.i("liuliang", "rxsearch_result_start_rxrx>>>" rxdown
">>>>>>>uppstart");
}
if (rov.moveToNext()) {
int number_id_ro = rov.getColumnIndex("id");
id_number_t = rst.getInt(number_id_ro);
if (id_number_r == id_number_t) {
} else {
int number7 = rov.getColumnIndex("liuliang");
rxdown = rov.getLong(number7) - rxdown;
if (Showmain.isLog) {
Log.i("liuliang", "rxsearch_result_rx_stop_ssss>>>>"
rxdown ">>>>>>uppstart");
Log.i("liuliang",
"rxsearch_result_rx_stop_ssss_resa>>>>"
rov.getLong(number7)
">>>>>>uppstart");
}
}
}
while (rshutdown.moveToNext()) {
int number8 = rshutdown.getColumnIndex("liuliang");
rxdown = rxdown rshutdown.getLong(number8);
}
rxdown = rxdown / 1024 / 1024;
mDown_total.setText(rxdown "MB");
}
if (tst.moveToNext()) {
int number9 = tst.getColumnIndex("liuliang");
txup = tst.getLong(number9);
int number_id_ts = tst.getColumnIndex("id");
id_number_r = tst.getInt(number_id_ts);
if (tov.moveToNext()) {
int number_id_to = tst.getColumnIndex("id");
id_number_t = tst.getInt(number_id_to);
if (id_number_r == id_number_t) {
} else {
int number10 = tov.getColumnIndex("liuliang");
txup = tov.getLong(number10) - txup;
}
}
while (tshutdown.moveToNext()) {
int number11 = tshutdown.getColumnIndex("liuliang");
txup = txup tshutdown.getLong(number11);
}
txup = txup / 1024 / 1024;
mUp_total.setText(txup "MB");
}
alltotal = rxdown txup;
mliuliang_total.setText(alltotal "MB");
}
/**
*
* 方法说明:显示时间
*
*/
private void selectdate(final TextView tex) {
new MyDatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
String monthstr, daystr;
monthOfYear = monthOfYear 1;
if (monthOfYear < 10) {
monthstr = "" 0 monthOfYear;
} else {
monthstr = "" monthOfYear;
}
if (dayOfMonth < 10) {
daystr = "" 0 dayOfMonth;
} else {
daystr = "" dayOfMonth;
}
tex.setText(year "-" monthstr "-" daystr);
}
}, mcalendar.get(Calendar.YEAR), mcalendar.get(Calendar.MONTH),
mcalendar.get(Calendar.DAY_OF_MONTH)).show();
}
/**
*
* 方法说明:把数据插入到系统数据库中
*
*/
private void datainsert() {
long g3_down_total = TrafficStats.getMobileRxBytes(); // 获取通过Mobile连接收到的字节总数,这里Android123提示大家不包含WiFi
long g3_up_total = TrafficStats.getMobileTxBytes(); // Mobile发送的总字节数
long mrdown_total = TrafficStats.getTotalRxBytes(); // 获取总的接受字节数,包含Mobile和WiFi等
long mtup_total = TrafficStats.getTotalTxBytes(); // 总的发送字节数,包含Mobile和WiFi等
//检测wifi是否存在
WifiManager wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
ConnectivityManager connect=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info=connect.getActiveNetworkInfo();
if(info!=null){
if(wifi.isWifiEnabled()){
minsert.insertNow(mrdown_total, RX, RXT, NORMAL);
minsert.insertNow(mtup_total, TX, TXT, NORMAL);
minsert.insertNow(g3_down_total, RXG, RX3G, NORMAL);
minsert.insertNow(g3_up_total, TXG, TX3G, NORMAL);
}
if(info.getType()==ConnectivityManager.TYPE_MOBILE){
minsert.insertNow(g3_down_total, RXG, RX3G, NORMAL);
minsert.insertNow(g3_up_total, TXG, TX3G, NORMAL);}
}
}
private void showdata() {
long grx = 0, gtx = 0, rx = 0, tx = 0;
Cursor rcursor = minsert.selectNow(RXG);
Cursor rdaycursor = minsert.selectday(RXG, SHUTDOWN);
Cursor tcursor = minsert.selectNow(TXG);
Cursor tdaycursor = minsert.selectday(TXG, SHUTDOWN);
if (rcursor.moveToNext()) {
int rnumbor = rcursor.getColumnIndex("liuliang");
grx = rcursor.getLong(rnumbor);
while (rdaycursor.moveToNext()) {
int rnumborday = rdaycursor.getColumnIndex("liuliang");
grx = grx rdaycursor.getLong(rnumborday);
}
grx = grx / 1024 / 1024;
mg_down_total.setText(grx "MB");
}
if (tcursor.moveToNext()) {
int tnumbor = tcursor.getColumnIndex("liuliang");
gtx = tcursor.getLong(tnumbor);
while (tdaycursor.moveToNext()) {
int tnumborday = tdaycursor.getColumnIndex("liuliang");
gtx = gtx tdaycursor.getLong(tnumborday);
}
gtx = gtx / 1024 / 1024;
mg_up_total.setText(gtx "MB");
}
long g_total = grx gtx;
mg_total.setText(g_total "MB");
Cursor mrcursor = minsert.selectNow(RX);
Cursor mrdaycursor = minsert.selectday(RX, SHUTDOWN);
Cursor mtcursor = minsert.selectNow(TX);
Cursor mtdaycursor = minsert.selectday(TX, SHUTDOWN);
if (mrcursor.moveToNext()) {
int numberRx = mrcursor.getColumnIndex("liuliang");
rx = mrcursor.getLong(numberRx);
while (mrdaycursor.moveToNext()) {
int numberRxDay = mrdaycursor.getColumnIndex("liuliang");
rx = rx mrdaycursor.getLong(numberRxDay);
}
rx = rx / 1024 / 1024;
mDown_total.setText(rx "MB");
}
if (mtcursor.moveToNext()) {
int numberTx = mtcursor.getColumnIndex("liuliang");
tx = mtcursor.getLong(numberTx);
while (mtdaycursor.moveToNext()) {
int numberTxDay = mtdaycursor.getColumnIndex("liuliang");
tx = tx mtdaycursor.getLong(numberTxDay);
}
tx = tx / 1024 / 1024;
mUp_total.setText(tx "MB");
}
long z_total = rx tx;
mliuliang_total.setText(z_total "MB");
mrcursor.close();
mrdaycursor.close();
mtcursor.close();
mtdaycursor.close();
rcursor.close();
rdaycursor.close();
tcursor.close();
tdaycursor.close();
}
private void alarmsave() {
Cursor alcursor = minsert.selectNow(flag);
if (alcursor.moveToNext()) {
} else {
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 50);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent it = new Intent("SAVE_LIULIANG_EVERYDAY");
PendingIntent peit = PendingIntent.getBroadcast(
getApplicationContext(), 0, it, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar
.getTimeInMillis(), 86400 * 1000, peit);
minsert.insertbiaozhi(flag, flagname);
if (Showmain.isLog) {
Log.i("liuliang", "alarmmangerstart>>>>>>>>>>uppstart");
}
}
}
}
标签: 统计
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论