主页按钮上的活动错误并开始续订

时间:2014-09-16 15:24:54

标签: android

我有一个Android应用程序,有2个活动,A和B. 然后,当我开始活动A时,转到活动B(按钮),按回家并点击启动器中的应用程序,我打开它并希望活动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>

在活动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>

2 个答案:

答案 0 :(得分:2)

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. 
  1. 如果您在清单文件中声明如下的ActivityA和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.Activity A - &gt;活动B.     2.按下主页按钮。     3.再次从启动器启动应用程序

    结果:将看到活动A.

    原因:

    如果我们添加android:launchMode =&#34; singleTask&#34;对于活动,将在新任务中创建活动。如果再次启动应用程序,将删除现有活动backstack,并再次在新任务中创建活动。 这就是为什么再次启动应用程序时无法看到活动B的原因。

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

答案 1 :(得分:0)

尝试 机器人:launchMode =&#34; singleInstance&#34;在清单