在我的应用程序中,我有一个5个活动的序列,从第二个开始,有一个重新启动按钮,应该回到第一个,问题是堆栈仍然保留,这会产生问题,因为用户可以单击返回。清除整个堆栈不是一种选择,因为在这5个之前没有活动,如果我清理它,它也会被擦除。
不能使用片段
答案 0 :(得分:1)
您需要使用singleTask
launchMode来执行在点击重新启动时开始的活动。
singleTask
如果系统中不存在singleTask Activity实例,则将创建一个新实例并将其简单地放置在同一Task中的堆栈顶部。
但是,如果存在一个活动,则位于该singleTask
活动之上的所有活动都会以适当的方式自动残酷地销毁(触发生命周期),从而使您想要出现在该活动上同时,Intent
将通过可爱的singleTask Activity
方法发送到onNewIntent()
。
因此,您需要在清单中将活动条目写为 p>
<activity
android:name=".YouSecondActivity"
android:label="singleTask launchMode"
android:launchMode="singleTask">
另请参阅android:taskAffinity
文档。尽管您不需要此处,但您应该了解它。
引用为Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstance和Android Activity “launchMode” Explained , Must know for Android Development.