点击应用图标后,启动器会再次创建一个新的root活动实例。再次。

时间:2015-01-20 11:10:30

标签: android android-intent instance launcher

点击应用图标后,启动器会创建一个新的root活动实例&当root活动已经存在于后台,即onPause()时,将调用root活动的onCreate()。 它再次创建了一个新的root活动实例&再次代替onResume()根活动。

我知道这是因为用于启动应用程序的意图不同。 Eclipse使用没有操作且没有类别的intent启动应用程序。 Launcher使用android.intent.action.MAIN动作和android.intent.category.LAUNCHER类别的intent启动应用程序。安装程序使用android.intent.action.MAIN操作启动应用程序,没有类别。

经过长时间的搜索后,我发现以下代码正在运行。但我认为这是解决方法。除了以下代码之外,还有其他任何解决方案。

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)     != 0) {
        // Activity was brought to front and not created,
        // Thus finishing this will get us to the last viewed activity
        finish();
        return;
    }

    // Regular activity creation code...
}

0 个答案:

没有答案