删除特定的堆栈活动

时间:2018-07-07 06:54:04

标签: android activity-stack

在我的应用程序中,我有一个5个活动的序列,从第二个开始,有一个重新启动按钮,应该回到第一个,问题是堆栈仍然保留,这会产生问题,因为用户可以单击返回。清除整个堆栈不是一种选择,因为在这5个之前没有活动,如果我清理它,它也会被擦除。

不能使用片段

1 个答案:

答案 0 :(得分:1)

您需要使用singleTask launchMode来执行在点击重新启动时开始的活动。

  

singleTask

如果系统中不存在singleTask Activity实例,则将创建一个新实例并将其简单地放置在同一Task中的堆栈顶部。

但是,如果存在一个活动,则位于该singleTask活动之上的所有活动都会以适当的方式自动残酷地销毁(触发生命周期),从而使您想要出现在该活动上同时,Intent将通过可爱的singleTask Activity方法发送到onNewIntent()


因此,您需要在清单中将活动条目写为

<activity
    android:name=".YouSecondActivity"
    android:label="singleTask launchMode"
    android:launchMode="singleTask">

另请参阅android:taskAffinity文档。尽管您不需要此处,但您应该了解它。

引用为Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstanceAndroid Activity “launchMode” Explained , Must know for Android Development.