我理解launchMode:“singleTask”意味着如果以前创建了一个活动并且将来要求显示该活动,Android将只显示旧活动而不是创建新实例。我面临的问题可以用一个例子来说明: -
假设我们有两项活动
A 动作
启用了 B (启动时使用launchMode =“singleTask”)(这就是其清单声明中的所有内容)
现在,如果A创建了对应于B(A-> B)的Intent,那么A将完成并从活动堆栈中删除。我怎样才能防止这种情况发生。我想要的是,当A调用B(创建一个Intent)时,返回B的前一个实例,A保持原样并且不被销毁。谢谢你的帮忙 。任何帮助表示赞赏
编辑
import pytest
PARAMS = [
(1, "One"),
(2, "Two"),
(3, "Three")
]
def my_id(number, string):
return '-'.join([str(number), string[0]])
@pytest.mark.parametrize("number, string",
PARAMS,
ids=[my_id(number, string) for number, string in PARAMS])
def test_stupid(number, string):
assert 0 == 1
答案 0 :(得分:0)
如果您只想在同一任务中有两个来回切换的活动,那么您应该删除所有特殊启动模式,然后从另一个活动中启动一个活动,如下所示:
Intent intent = new Intent(this, ActivityX.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
如果您使用此方法从B
开始A
并使用此方法从A
启动B
,那么您将拥有每个Activity
的一个实例在你的任务中,他们只会改变堆栈中的位置。这不会创建任何新实例。
同时删除<intent-filter>
声明,您也不需要它们。您只需要一个根Activity
,其中应包含&#34; ACTION = MAIN&#34;和&#34; CATEGORY = LAUNCHER&#34;。