如何处理因AsyncTask android而导致的竞争条件

时间:2013-08-02 04:43:41

标签: android android-asynctask

我有一个listview控件,按以下顺序更新

a)活动获得广播事件,该事件在onRecieve

中处理

b)启动AsyncTask,在doBackground中读取文件并填充一个临时数组,该数组将传递给postExecute。在post中执行一个数组myArray,它支持listview的适配器,通过传递的数据进行更新。并且适配器notifychanged被称为

现在,还有一个功能,用户可以检查列表视图中的行,然后单击按钮说删除。这将删除数组中的条目(myArray)。

问题:按下按钮和AsyncTask可以随时发生,如何维护排序,以便按下删除按钮时列表视图不会刷新。

1 个答案:

答案 0 :(得分:0)

由于在主线程上执行onClickListeneronPostExecute,因此您可以在按下按钮时取消异步任务。在这种情况下,onPostExecute如果尚未执行则不会执行。