如何从把搜索历史全部删除回退堆栈中删除Activity自己

我有这样一个<intent-filter>每当按下某个链接它就会打开我的应用程序,但问题是它会打开我的应用程序的一个新实例是否仍要触发onresume()并在不丢失其状态或活动堆栈的情况下继續我的应用?

感谢用户david wasser的回答我找到了答案:

您应该创建另一个Activity,在响应该<intent-filter>时用作应用程序的入口点像这样的:
你需要的只是一个简單的活动,什么也不做下面是一个例子:

放到这个活动上,而不是你的“启动”活动上确保在清单中,此活动的任务关联与应用程序Φ其他活动的任务关联相同(默认情况下如果未显式设置android:task affinity,则为)

时,如果您的应用程序正在运行则

将在应用程序任务中最顶层活動的顶部启动,并将该任务置于前台当

完成时,它会简单地将用户返回到应用程序中最顶层的活动(即:当它进入后台时用户离开它嘚位置)。

如果您的应用程序没有运行

会识别出这一点,并从一开始启动您的应用程序将包含触发

}

在Activity被终止时保留Activity的状态是系统的默认行为这样,当用户返回到之前的Activity时用户界面会显示它们离开时的样子。但是在Activity被销毁和重建的场景中应该主动的使用回调方法保留Activity的状态

当系统终止一个Activity时(如一个新的Activity启动或这个任务被转移到后台),如果需要回收系统内存那么系统可能完全的销毁这个Activity。当這种情况发生时有关Activity状态的信息就会丢失。即使这种情况发生了系统依然知道这个Activity在回退堆栈中位置,但是在Activity被带到堆栈的顶部时系统必须重新创建它(而不是恢复它)。为了避免丢失用户的工作你应该在Activity中通过实现onSaveInstanceState()回调方法主动的保留状态信息。

}

我要回帖

更多关于 java堆栈 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信