2个启动器活动,在启动另一个活动时完成一个

时间:2015-12-12 16:21:27

标签: android android-activity stack

我的应用中有2个启动器活动和2种模式。 当启动Activity_A应用程序开始在mode_A中工作,而Activity_B启动mode_B时。 应用程序只能在给定时间以一种模式运行。 onCreate()

中的Activity_A和Activity_B init需要模式

我有下一个糟糕的情况:

  1. 启动Activity_A,app init mode_A
  2. 按主页按钮,Activity_A进入后台
  3. 启动Activity_B,app init mode_B
  4. 通过后退按钮关闭Activity_B
  5. 再次启动Activity_A - >它已恢复(从2步开始),调用onStart()并获得大量异常,因为app现在处于mode_B状态,而Activity_A与mode_B不兼容。
  6. 我希望在步骤3中从堆栈中清除Activity_A,它将无法恢复 在第5步。 我怎么能做到这一点?

    清单中的活动:

    <activity
        android:name="Activity_A"
        android:launchMode="singleTask"
        android:taskAffinity="Affinity_A">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
    <activity
        android:name="Activity_B"
        android:launchMode="singleTask"
        android:taskAffinity="Affinity_B" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    

    另外我尝试使用android:clearTaskOnLaunch和android:finishOnTaskLaunch没有结果:(

1 个答案:

答案 0 :(得分:0)

我无法理解mode_A或mode_B。

但从您的问题标题来看,您应该尝试this question 主要是说:

在活动A中

  1. 声明类似public static Activity a;

  2. 的静态字段
  3. 在onCreate中实例化a = this;

  4. 在活动B中

    1. Activity_A.a.finsh();
    2. 一样杀死onCreate

      如果在按下后退出应用程序,则可以覆盖onBackPressed()并从那里启动Activity。