我想从我的应用程序连接wifi热点。连接我的应用程序后去背景。我想从我的应用程序计算WiFi使用时间。我使用asynctask连接wifi热点,然后在后台发送我的应用程序。我已经成功完成了。但我的问题是计算无线使用时间并显示它。我应该使用服务来计算背景中的时间。android:计算后台应用程序的值
public class ConnectWifiInAsync extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
private String mSsid, mPass, mMode ;
public ConnectWifiInAsync(String ssid, String pass, String mode){
super();
mSsid = ssid ;
mPass = pass;
mMode = mode ;
}
@Override
protected void onPreExecute() {
dialog = new ProgressDialog(WifiScanActivity.this);
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("Connecting to WiFi. Please Wait.");
dialog.show();
}
@Override
protected void onPostExecute(Void result) {
/*connected = true;
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo conn = wifi.getConnectionInfo();
Context context = getApplicationContext();
CharSequence wifi_on = "Connected to " + conn.getSSID();
int duration = Toast.LENGTH_LONG;
Toast responseToast = Toast.makeText(context, wifi_on, duration);
responseToast.show();*/
if (dialog.isShowing()) {
dialog.dismiss();
}
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
WifiScanActivity.this.startActivity(i);
}
@Override
protected Void doInBackground(Void... voids) {
/*WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);*/
connectToAP(mSsid, mPass, mMode);
try {
Thread.sleep(3000);
} catch (Exception e) {
}
return null;
}
}
简单的解决方法是,当您在后台发送应用程序时,获取当前时间并保存在SharedPrefs中。还要注册广播接收器'android.net.conn.CONNECTIVITY_CHANGE'。连接丢失时。从sharedPrefs获取时间并将其与启动时的时间进行比较。 –