如何在Android中防止多个意图同时运行

时间:2017-08-16 14:05:47

标签: android android-intent

我有这个代码在for循环中运行多个删除意图:

for(PackageModel package: packages){
    Uri uri = Uri.fromParts("package", package, null);
    Intent intent = new Intent(Intent.ACTION_DELETE, uri);
    startActivityForResult(intent, 1);
}

我想在每个intent完成后执行一些代码,所以我调用了onActivityResult():

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    // do something ....
}

这个代码似乎完美无缺,除了一件烦人的事情:系统先运行意图,然后运行corespondent onActivityResult()方法,如下所示:

intent 1
intent 2 
intent 3
....

onActivityResult() 1
onActivityResult() 2
onActivityResult() 3
....

我想要做的是运行intent并直接执行它的onActivityResult()然后转到下一个意图:

intent 1
onActivityResult() 1

intent 2
onActivityResult() 2

intent 3
onActivityResult() 3

....

我希望这很清楚,并提前感谢你。

1 个答案:

答案 0 :(得分:1)

(明显的代码省略)

跟踪您的包裹

private List<PackageModel> mListModels; // fill these

先开始

private void deleteModel{
    PackageModel m1 = mListModels.get(0);
    mListModels.remove(0);
    startActivityForResult(m1);
}

在结果中

onActivityResult(){
    if(mListModels.size > 0){
       deleteModel();
    }
 }