【问题标题】:Child Activity gets killed after parent activity is finished父活动完成后,子活动被杀死
【发布时间】:2012-04-25 19:01:33
【问题描述】:

我有 2 个应用程序,其中一个通过像这样的意图过滤器从第二个应用程序调用活动:

调用 App1(父应用)

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

App2(子应用)中的 Intent 过滤器

    <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>

有时父应用程序必须关闭,但问题是来自第二个应用程序的 Activity2 也被杀死。我可以看到 Activity2 实际上是在同一个包下运行的,有没有办法让 Activity2 即使在父应用程序关闭后也能持久运行?

谢谢

【问题讨论】:

    标签: android android-activity parent-child intentfilter


    【解决方案1】:

    这个讨论似乎有你需要的。似乎您需要从要启动的包中获取启动意图并在您的意图中使用它。

    Launch an application from another application on Android

    【讨论】:

      【解决方案2】:

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

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

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

      当然,如果您的进程意外终止,这是一个需要理解和解决的问题 - 这只是一个临时解决方法。

      【讨论】:

      • 这些不是来自同一个 apk 的组件。一个 apk 正在从另一个 apk 调用活动。他们都没有意外死亡。我的问题是,如果 app1 从 app2 调用 Intent,当 app1 关闭时,来自 app2 的 Intent 也会被杀死,我不希望这样。
      • 或许你最好澄清一下你所说的“关闭”和“杀死”是什么意思
      猜你喜欢
      • 2013-12-17
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多