这里很奇怪。
我最初的活动是启动活动(活动A)。它有与之关联的标记android:launchMode="singleTask"
。没问题。我的要求发生了变化,现在我将Activity B作为创业活动。我复制了intent过滤器,我将名称更改为“.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>
答案 0 :(得分:1)
听起来活动B正在调用finish()
或其他东西。我建议在OnCreate
,OnPause
,OnResume
和OnDestroy
中添加一些日志语句,这样您就可以监控活动B的生命。它是一个高地活动(只能进行1)所以你不必担心创建多个实例。您也可以查看/覆盖onNewIntent
并在那里放置一些日志记录调用。
不是真正的答案,但是在开始活动A之后,或者当活动B在后台进行并且你已经忘记它时,你或者有人给你或者某人投入了美元。
如果情况并非如此,我会对活动B何时/何时死亡感兴趣。通常如果它因为返回时出现一些错误而停止,那么Android会咆哮你,但是因为你没有提到我猜它不是。