簡體   English   中英

如何將我的服務轉換為與AsyncTask一起運行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM