在标记为重复之前仔细红色:
如何在 Activity 中重新启动 和 android 术语中的 Activity 。 (就像有人按下主页按钮并返回到应用程序时一样)。我不想重绘我的 Activity ,所以不能调用 onCreate
。基本上如何做 pause -> stop -> start -> resume
? (没有销毁或创建
)
我想这样做的主要原因是,当我修改窗口标志时,它们不会立即生效,但在按下主页并返回到应用程序后,它们就会生效。任何其他关于确保它们有效的建议都将非常受欢迎。 (FLAG_SECURE
是没有立即生效的标志)
我找不到任何与此相关的所有其他类似问题,涉及重新绘制完整 Activity 。
最佳答案
当你再次开始你的 Activity 时不太清楚......
(来自 http://developer.android.com/reference/android/app/Activity.html)
如您所见,一旦您的 Activity 停止(在 onStop() 之后),它可以被销毁或重新启动 - 但这取决于我们范围之外的其他 Activity - 所以我们不知道您的上下文开始/停止您的 Activity ...
->你的答案没有定义
牢记编程提示:
根据您的 Activity 的复杂性,您可能不需要实现所有生命周期方法。但是,重要的是您了解每一个并实现那些以确保您的应用程序按照用户期望的方式运行。正确实现 Activity 生命周期方法可确保您的应用在多个方面表现良好,包括:
- 如果用户在使用您的应用时接到电话或切换到另一个应用,不会崩溃。
- 在用户不主动使用时不消耗宝贵的系统资源。 如果用户离开您的应用并稍后返回,不会丢失用户的进度。
- 当屏幕在横向和纵向之间旋转时,不会崩溃或丢失用户的进度。
(来自 http://developer.android.com/training/basics/activity-lifecycle/starting.html)
可杀
为了让您更清楚:查看 http://developer.android.com/reference/android/app/Activity.html 中的表格在那里你可以看到统计数据和可杀死的旗帜......
...还有那张纸条:
请注意上表中的“Killable”列——对于那些标记为可杀死的方法,在该方法返回后,承载该 Activity 的进程可能随时被系统杀死,而无需执行其另一行代码.因此,您应该使用 onPause() 方法将任何持久数据(例如用户编辑)写入存储。此外,方法 onSaveInstanceState(Bundle) 在将 Activity 置于这样的后台状态之前被调用,允许您将 Activity 中的任何动态实例状态保存到给定的 Bundle 中,如果 Activity 稍后在 onCreate(Bundle) 中接收需要重新创建。有关流程的生命周期如何与其托管的 Activity 相关联的更多信息,请参阅流程生命周期部分。请注意,将持久数据保存在 onPause() 而不是 onSaveInstanceState(Bundle) 中很重要,因为后者不是生命周期回调的一部分,因此不会在其文档中描述的每种情况下都被调用。
关于java - Android如何重启一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25784549/