Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2个启动程序活动,启动另一个时完成一个_Android_Android Activity_Stack - Fatal编程技术网

Android 2个启动程序活动,启动另一个时完成一个

Android 2个启动程序活动,启动另一个时完成一个,android,android-activity,stack,Android,Android Activity,Stack,我的应用程序中有2个启动程序活动和2种模式。 启动活动时,应用程序在模式A下开始工作,活动时启动模式B下开始工作。 应用程序在给定时间只能在一种模式下工作。 onCreate()中的Activity_A和Activity_B init needed模式 我有下一个糟糕的情况: 启动活动A,应用程序初始模式A 按主页按钮,活动进入后台 启动活动,应用初始化模式 通过后退按钮关闭活动_B 再次启动Activity_A->它已还原(从第2步开始),调用onStart()并获得大量异常,因为应用程序现在

我的应用程序中有2个启动程序活动和2种模式。 启动活动时,应用程序在模式A下开始工作,活动时启动模式B下开始工作。 应用程序在给定时间只能在一种模式下工作。 onCreate()中的Activity_A和Activity_B init needed模式

我有下一个糟糕的情况:

  • 启动活动A,应用程序初始模式A
  • 按主页按钮,活动进入后台
  • 启动活动,应用初始化模式
  • 通过后退按钮关闭活动_B
  • 再次启动Activity_A->它已还原(从第2步开始),调用onStart()并获得大量异常,因为应用程序现在处于模式B,Activity_A与模式B不兼容
  • 我希望在步骤3中清除堆栈中的活动,并且它不会被恢复 在第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,但没有结果:(

    我无法理解模式A或模式B

    但从你的题目来看,你应该试试 主要是说,

    在活动A中

  • 像公共静态活动a一样声明静态字段a;

  • 在onCreate中实例化,如
    a=this;

  • 在活动B中

  • 活动_A.A.finsh();
  • 若应用程序在按BackPress后退出,则可以覆盖onBackPressed()并从那个里启动活动