在onResume中调用intent会导致无限递归

时间:2014-03-12 15:12:56

标签: android android-intent

每次我可能离开我的应用程序时,我都需要调用另一个应用程序的意图。这意味着每当我(重新开始)我的MainActivity时,我需要在onResume中调用此意图:

Intent intent = new Intent();
intent.setData(Uri.parse("protocol://mycall.stuff"));
intent.setAction("protocol.GET");
startActivityForResult(intent, 1);

问题在于此意图会导致onActivityResult在完成后似乎再次调用onResume,等等。

我试图在我的finish()之后使用onActivityResult,就像在其他一些帖子中建议的那样,但接下来我的活动 - 很好 - 完成。

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用boolean来处理以下情况......

boolean done = false;

@Override
protected void onResume() {

    super.onResume();

    if (!done) {

        Intent intent = new Intent();
        intent.setData(Uri.parse("protocol://mycall.stuff"));
        intent.setAction("protocol.GET");
        startActivityForResult(intent, 1);

        done = true;

    }

}

答案 1 :(得分:0)

Android在其生命周期中具有onResume状态,因此在创建活动时无法阻止调用onResume。你可以做的是通过一个标志来控制它,以防止在ifResume内调用if(flag)return;