父活动完成后,子活动被杀死

时间:2012-04-25 19:01:34

标签: android android-activity parent-child intentfilter

我有2个应用程序,其中一个是通过意图过滤器调用第二个应用程序中的活动,如下所示:

在App1(父应用)中调用

Intent openApp = new Intent("com.app.intent.Activity2");
startActivity(openApp );

App2中的意图过滤器(子应用程序)

    <activity
        android:name=".app.activity.Activity2"
        android:label="@string/app_name" 
        android:launchMode="singleInstance"
        >

        <intent-filter>
            <action android:name="com.app.intent.Activity2" />
            <category android:name="android.intent.category.BROWSABLE"/> 
            <category android:name="android.intent.category.DEFAULT"/> 
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

有一次,Parent应用程序必须关闭,但问题是来自第二个应用程序的Activity2也会被杀死。我可以看到Activity2实际上是在同一个包下运行的,有没有办法让Activity2在父应用程序关闭后仍然存在并运行?

谢谢

2 个答案:

答案 0 :(得分:1)

这个讨论似乎有你需要的东西。好像你需要从你想要启动的软件包中获取启动意图并在你的意图中使用它。

Launch an application from another application on Android

答案 1 :(得分:0)

Android通常会在一个进程中运行来自同一APK的所有组件,因此如果其中一个崩溃了进程,那么它们将全部消失。

但是,您可以告诉它将活动或服务放在自己的进程中。

<activity
    android:name=".app.activity.Activity2"
    android:label="@string/app_name" 
    android:launchMode="singleInstance"
    android:process=":my_unique_process">

当然,如果你的过程意外死亡,这是一个需要理解和修复的问题 - 这只是一个临时的解决方法。