Android “主页”按钮和“开始续订”上的活动错误

Android “主页”按钮和“开始续订”上的活动错误,android,Android,我有一个android应用程序,它有两个活动,A和B。 然后,当我启动活动A时,转到活动B(按钮),按home并单击launcher中的应用程序,我打开它,希望是活动B,但它是活动A 为什么? 在活动A的清单中,我有 <activity android:configChanges="locale|orientation|keyboardHidden|screenSize" android:label="@string/app_name" android:

我有一个android应用程序,它有两个活动,A和B。 然后,当我启动活动A时,转到活动B(按钮),按home并单击launcher中的应用程序,我打开它,希望是活动B,但它是活动A

为什么?

在活动A的清单中,我有

<activity android:configChanges="locale|orientation|keyboardHidden|screenSize"
                  android:label="@string/app_name" android:launchMode="singleInstance" android:name="MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

在activity B launchMode:singleTask中,在意图筛选器中:

<intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>

试试看 清单中的android:launchMode=“singleInstance”

If we do not add launch mode for activities in manifest file,the default implementation is as below:

1.Activity A --> Activity B
2.Pressed Home button. 
3.launch application again from launcher

Result:
Activity B will be seen. (If application is not killed).

Which behavior you are expecting. 
  • 如果您在清单文件中声明活动A和B如下:

            <activity android:name=".ActivityA"
              android:label="@string/app_name"
               android:launchMode="singleTask" 
             >
    
            <activity android:name=".ActivityA"
              android:label="@string/app_name"
               android:launchMode="singleTask" 
             >
    
    
    
    步骤: 1.活动A-->活动B 2.按下主页按钮。 3.再次从启动器启动应用程序

    结果:将看到活动A

    原因:

    如果我们为activity添加android:launchMode=“singleTask”,那么将在新任务中创建activity。若再次启动应用程序,将删除现有的“活动回退”,并再次在新任务中创建“活动”。 这就是为什么当您再次启动应用程序时无法看到活动B的原因

    如果需要进一步澄清,请添加您的评论


  • 抱歉,我已为启动模式声明了活动a。如何将活动a设置为启动模式并获取所需的工作流?活动A->活动B->主页->activityb@colymore您可以检查以下启动模式:您将获得预期的行为。活动A->活动B->主页->活动B