[英]How do I convert my service to run with AsyncTask?
我試圖將服務中執行的內容轉換為AsyncTask,以使其更好。 但是,我是這個概念的新手,在設置它時遇到了麻煩(不知道放在哪里)。 按下MainActivity
的按鈕后,將在onHandleIntent
上執行此服務。
應該在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);
有人可以幫忙嗎?
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.