我正在尝试将服务中执行的内容转换为AsyncTask,以使其更好。但是,我是这个概念的新手,在设置它时遇到了麻烦(不知道放在哪里)。
按下onHandleIntent
中的按钮后,就会在MainActivity
上执行此服务。
应该在doInBackground()中运行的部分(collectData()获取有关手机中应用程序的数据使用情况信息):
Utils.d("On Handle Inent Called -- Will collect Data");
newStartTime = intent.getLongExtra("startTime",0);
newEndTime = intent.getLongExtra("endTime",0);
dataUsage = collectData();
运行onPostExecute()的部分(启动一个列出应用程序及其数据使用情况的新活动):
isWifi = intent.getBooleanExtra("isWifi",true);
Intent intentActivity = new Intent(this, DataDisplayActivity.class);
intentActivity.putExtra("dataUsage",dataUsage.toString());
intentActivity.putExtra("isWifi",isWifi);
startActivity(intentActivity);
有人可以帮忙吗?
答案 0 :(得分:0)
new AsyncTask<Void, Void, Void>() {
@Override
protected Void> doInBackground(Void... params) {
Utils.d("On Handle Inent Called -- Will collect Data");
newStartTime = intent.getLongExtra("startTime",0);
newEndTime = intent.getLongExtra("endTime",0);
dataUsage = collectData();
return null;
}
@Override
protected void onPostExecute(Void void) {
super.onPostExecute(showsForBucket);
isWifi = intent.getBooleanExtra("isWifi",true);
Intent intentActivity = new Intent(this, DataDisplayActivity.class);
intentActivity.putExtra("dataUsage",dataUsage.toString());
intentActivity.putExtra("isWifi",isWifi);
startActivity(intentActivity);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);