Java 如何将服务转换为使用AsyncTask运行?

Java 如何将服务转换为使用AsyncTask运行?,java,android,android-asynctask,Java,Android,Android Asynctask,我正在尝试将服务中执行的内容转换为AsyncTask,以使其更好。然而,我对这个概念还不熟悉,而且我在设置它时遇到了麻烦(不知道该把什么放在哪里)。 按下main activity中的按钮后,此服务将在onHandleIntent上执行 应在doInBackground()中运行的部分(collectData()获取有关手机中应用程序的数据使用信息): 运行onPostExecute()的部分(启动列出应用及其数据使用情况的新活动): 有人能帮忙吗?newasynctask(){

我正在尝试将服务中执行的内容转换为AsyncTask,以使其更好。然而,我对这个概念还不熟悉,而且我在设置它时遇到了麻烦(不知道该把什么放在哪里)。 按下
main activity
中的按钮后,此服务将在
onHandleIntent
上执行

应在doInBackground()中运行的部分(collectData()获取有关手机中应用程序的数据使用信息):

运行onPostExecute()的部分(启动列出应用及其数据使用情况的新活动):

有人能帮忙吗?

newasynctask(){
        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);
@凌驾 受保护的Void>doInBackground(Void…参数){ Utils.d(“被调用的句柄——将收集数据”); newStartTime=intent.getLongExtra(“startTime”,0); newEndTime=intent.getLongExtra(“endTime”,0); dataUsage=collectData(); 返回null; } @凌驾 PostExecute上受保护的void(void void){ super.onPostExecute(showsForBucket); isWifi=intent.getBooleanExtra(“isWifi”,true); Intent intentActivity=新的Intent(这是DataDisplayActivity.class); intentActivity.putExtra(“dataUsage”,dataUsage.toString()); intentActivity.putExtra(“isWifi”,isWifi); 起始触觉(意向性); } }.executeOnExecutor(异步任务.THREAD\u池\u EXECUTOR);
如果您已经在使用
IntentService
,为什么需要异步任务?
    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);