Android onStop/onDestroy-何时可以使用?
查看活动生命周期图,我注意到Android onStop/onDestroy-何时可以使用?,android,Android,查看活动生命周期图,我注意到onPause()和onStop()都会导致“进程”被终止。这需要在用户希望恢复其应用程序时调用onCreate()。关键是不一定要调用onStop(),也不一定要调用onDestroy(),但onPause()可能是活动可能看到的唯一事件。在这种情况下,onPause()必须处理保存应用程序状态,以便用户以后可以返回到应用程序状态,而不管是否调用了onStop() 我可以看到onDestroy()被用来清理特定于活动的资源,这些资源自然会在进程终止操作中被消除。还有
onPause()
和onStop()
都会导致“进程”被终止。这需要在用户希望恢复其应用程序时调用onCreate()
。关键是不一定要调用onStop()
,也不一定要调用onDestroy()
,但onPause()
可能是活动可能看到的唯一事件。在这种情况下,onPause()
必须处理保存应用程序状态,以便用户以后可以返回到应用程序状态,而不管是否调用了onStop()
我可以看到onDestroy()
被用来清理特定于活动的资源,这些资源自然会在进程终止操作中被消除。还有什么onDestroy()
适合的吗
那么
onStop()
有什么好处呢?为什么我要覆盖它?如果我没有弄错你的问题:这取决于你想对你的应用程序做什么。假设您正在编程使用GPS的应用程序。在用户看不到活动时调用的onStop()
中,可以删除这些请求。或者,如果应用程序正在运行某项服务,则可以停止该服务。或者您可以保存首选项(不推荐,请改为在onPause()
中保存),或者您可以关闭与服务器的永久连接……如果我想到其他任何事情,我将添加更多…另一个示例是注册和取消注册广播接收器
请注意,这些内容通常放在onResume和onPause中,但差别很小,当活动放在另一个活动之后时调用onResume/onPause,当活动在屏幕上不再可见时调用onStart/onStop。如果您进一步阅读了文档,您将看到以下内容: 保存活动状态 管理活动生命周期的简介简要提到 当活动暂停或停止时,活动的状态 保留。这是正确的,因为活动对象仍然保存在 暂停或停止时的内存有关其成员的所有信息 目前的状态仍然存在。因此,用户所做的任何更改 活动中的所有内容都保留在内存中,以便在 返回前台(当它“恢复”时),这些更改仍在继续 在那里 但是,当系统为了恢复而销毁活动时 内存中,活动对象被破坏,因此系统不能简单地 恢复它,使其状态保持不变。相反,系统必须重新创建 活动对象,如果用户导航回它。然而,用户是 不知道系统破坏了活动并重新创建了活动, 因此,我们可能希望活动与原来完全一样。在这个 在这种情况下,您可以确保有关 通过实现额外的回调来保留活动状态 方法,该方法允许您保存有关系统状态的信息 活动,然后在系统重新创建时将其还原 活动 摘要:完成
onStop()
后,活动对象在内存中仍处于活动状态。这将有助于系统恢复活动
非常基本的例子:考虑你向用户展示你的活动,突然你的朋友打电话给你!其余的你可以理解
因此,现在取决于您,哪些资源/对象/连接应该在哪个事件中释放。对不起,我指的是
onStop()
,lapsus-mentis.:)我将编辑我的回答,这样听起来就像您使用onStop()来响应不再可见的活动,而onPause()发布GPS提供程序还为时过早。但我担心的是进程终止可能无法正确处理资源的释放。另一个微妙的区别是,如果它们是启动和停止,当不调用onStop,但进程终止时会发生什么?广播接收器是否干净地未注册?我想是的。