我有一些代码;
public class MyAsyncTask extends AsyncTask.. {
/*----- some code
*/
protected Void doInBackground(){
process1;
process2;
....
process10;
}
}
public void onReceive(Context context, Intent arg1) {
if(action==abc){
myAsyncTask=new MyAsyncTask();
myAsyncTask.excute(context);
}
}
我在结果中看到了:有些时间" process10"没有实施。
据我所知:
所以,问题已经发生。但我还没有解决方法来修复它。
我希望得到所有人的帮助来解决我的问题
请帮帮我! 谢谢大家!
答案 0 :(得分:1)
您可以使用IntentService:http://developer.android.com/reference/android/app/IntentService.html
package com.example.myapp;
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
process1;
process2;
....
process10;
}
}
在您的清单中注册此服务:
<manifest ... >
...
<application ... >
<service android:name="com.example.myapp.MyIntentService" />
...
</application>
</manifest>
最后在onReceive()方法中启动IntentService:
public void onReceive(Context context, Intent arg1) {
if(action.equals(abc)){
Intent intent = new Intent(context, MyIntentService.class)
context.startService(intent)
}
}