Android AsyncTask同步
问题描述:
我有一个预定的服务(用于调度我使用一捆BroadcastReceiver和AlarmManager)。服务使用AsyncTask进行一些长时间运行的操作。Android AsyncTask同步
- 连接到服务器
- 检查一些更新,如果他们存在
- 进行数据更新操作
- 加载更新
我打电话从OnStart方法任务是这样的:
onStart(...){
...
new AsyncUpdate(...).execute(...);
}
用户可以执行更新操作(他按下运行服务的按钮)。 那么,如果他在执行AsyncUpdate任务期间按下按钮呢?根据引用新的工作线程将被创建,所以我需要同步它们。 我使用静态PARAM从我的服务类吧:
synchronized(MyService.runLock){//public static Object runLock = new Object();
...perform download and update operations
}
是正确的吗?
我用过:远程服务之前,所以服务在一个单独的线程执行,我不需要这些之间的同步,因为我知道我只有一个线程。
答
如果您不介意正在排队的操作,那么可能IntentService可能对您有用。它处理自己的队列并在工作线程上依次执行每个请求。当它用完时,它会自行停止。
+0
我可以在这种服务上使用IPC吗? – Nick 2011-05-27 07:03:38
这就是诀窍......谢谢! – Nick 2011-05-27 07:04:12