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