Android切换的启动活动:旧的启动活动仍然如此

Android切换的启动活动:旧的启动活动仍然如此,android,navigation,android-activity,back-button,Android,Navigation,Android Activity,Back Button,很奇怪 我最初的活动是启动活动(活动A)。它有一个与之关联的标签android:launchMode=“singleTask”。没问题。我的要求改变了,现在我把活动B作为启动活动。我复制了意图过滤器,将名称改为“.ActivityB”,并将启动模式标记也移到了上面 它似乎工作正常;当我启动应用程序时,我会转到活动B。但是,当我从活动B转到活动A,然后单击“上一步”按钮时,应用程序退出并且不会重新打开(如果我没有启动模式标签,它将重新打开) 另一个例子。如果我从活动A到活动B再到活动A到活动B,一

很奇怪

我最初的活动是启动活动(活动A)。它有一个与之关联的标签
android:launchMode=“singleTask”
。没问题。我的要求改变了,现在我把活动B作为启动活动。我复制了意图过滤器,将名称改为“.ActivityB”,并将启动模式标记也移到了上面

它似乎工作正常;当我启动应用程序时,我会转到活动B。但是,当我从活动B转到活动A,然后单击“上一步”按钮时,应用程序退出并且不会重新打开(如果我没有启动模式标签,它将重新打开)

另一个例子。如果我从活动A到活动B再到活动A到活动B,一切都很好。当我单击后退时,我会转到活动A(如预期的那样),但是当我再次单击后退时,我会转到活动A的上一个实例(哦,哦),然后再次单击后退并退出应用程序。两次都跳过活动B

我显然忽略了一些东西,但我不知道是什么。我没有覆盖任何后退按钮功能,在我切换启动活动之前,一切都运行得很好

编辑 以下是我的清单在任何更改之前的摘录

<activity android:name=".ActivityA" android:windowSoftInputMode="stateHidden" android:label="@string/app_name" android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="ActivityB"></activity>

以下是更改后的摘录

<activity android:name=".ActivityB" android:windowSoftInputMode="stateHidden" android:label="@string/app_name" android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="ActivityA"></activity>

听起来好像活动B正在调用
finish()。我建议在
OnCreate
OnPause
OnResume
OnDestroy
中加入一些日志语句,这样您就可以监视活动B的生命周期。这是一个highlander活动(只能有1个),因此您不必担心会创建多个实例。此外,您还可以查看/override并在那里放置一些日志调用

这不是一个真正的答案,但在开始活动a后,或者当活动B进入后台而你忘记了它时,你或某人会打一个
finish()
电话


如果不是这样,我会对活动B如何/何时死亡感兴趣。通常情况下,如果返回时由于某些错误而停止,Android会对您咆哮,但由于您没有提到,我想它不会。您是否复制或移动了意图过滤器?不确定如果你有两个活动在emNo上带有启动意图过滤器,会发生什么,请查看编辑,我还听说你实际上可以将两个活动声明为启动活动(可能我听错了)。我不知道那有什么用如果我能送你甜甜圈我会的。你对最后添加的内容一窍不通。最初我正在完成活动B,但它返回到活动A(家庭活动),因为活动B不再需要做任何事情,所以我想我应该完成它并释放一些资源。实际上,我更喜欢美元:d