如何切换到另一个应用程序而不调用onCreate(如果它打开)?

时间:2012-03-10 13:56:12

标签: android-intent

希望这将是一个简单的。我需要在Android中实现经典的“来自其他应用程序的应用程序”,其中有大量关于Internet和SO的建议。

我试过了:

Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setComponent(new ComponentName("a.b.c","a.b.c.classname"));
        getContext().startActivity(intent);

    Intent intent = getContext().getPackageManager()
            .getLaunchIntentForPackage(app);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getContext().startActivity(intent);

它们都可以从我的应用程序中正常生成新活动,尤其是在应用程序未运行的情况下。

当应用程序已经运行时,我遇到问题因为我看到上面的方法调用onCreate()/ onRestart()方法而不是onResume()/ onRestart(),就像在应用程序的“手动”选择中一样(即触摸桌面图标,工作正常。

再次调用onCreate()的问题是我在这里设置了一个TCP服务器,显然无法在同一个端口上重新创建。

我原则上可以检查应用程序是否正在运行并将onCreate()劫持到onResume()方法,但这有点糟糕。

任何想法都是“正确”吗?

欢呼声

1 个答案:

答案 0 :(得分:0)

我认为你可以在启动另一个应用程序时传递参数 您可以将此视为参考pass parameter when start other application 调用OnCreate函数时,它会检查参数并在需要时启动TCP服务器。