Android 活动的onDestroy()是否总是在应用程序销毁时调用?

Android 活动的onDestroy()是否总是在应用程序销毁时调用?,android,android-activity,Android,Android Activity,我有5个活动,例如第一幕>第二幕>第三幕>第四幕>第五幕。并且每个活动都有OVVERIDEN onDestroy()。现在,如果用户在Act 5上删除并从最近的应用程序中销毁应用程序,会发生什么情况?它会调用每个活动的onDestroy()吗?通常是的,但您不能100%依赖它,因为活动可能会因为其他原因而被破坏。例如,如果用户切换到另一个应用程序,系统可能会决定临时终止您的活动以回收资源,并在用户切换回您的应用程序时重新创建这些活动。如果发生这种情况,然后用户杀死你的应用程序,你将不会得到onD

我有5个活动,例如第一幕>第二幕>第三幕>第四幕>第五幕。并且每个活动都有OVVERIDEN onDestroy()。现在,如果用户在Act 5上删除并从最近的应用程序中销毁应用程序,会发生什么情况?它会调用每个活动的onDestroy()吗?

通常是的,但您不能100%依赖它,因为活动可能会因为其他原因而被破坏。例如,如果用户切换到另一个应用程序,系统可能会决定临时终止您的活动以回收资源,并在用户切换回您的应用程序时重新创建这些活动。如果发生这种情况,然后用户杀死你的应用程序,你将不会得到onDestroy()调用,因为没有要销毁的“活动”,它们都已经死了

另外请注意,onStop()和onDestroy()方法不能保证立即调用,它们可能会在一段时间后调用。唯一的保证是调用的顺序:onStop()不会在onPause()之前调用,OnStroy()也不会在onStop()之前调用。

如中所述

在某些情况下,系统会简单地终止活动的宿主进程,而不在其中调用此方法(或任何其他方法),因此不应使用它来执行在进程结束后仍保留的操作


被终止的Android应用程序可能会根据PID(进程ID)终止,这意味着应用程序被终止,而不是单个活动。

如果系统终止进程,运行服务会发生什么情况?服务与应用程序和/或活动没有直接关系,在用户或系统杀死它们之前,服务将在后台运行。您上面的评论不正确<代码>服务是Android组件,与应用程序的其他组件(
活动
广播接收器
等)在同一操作系统进程中(通常)处于活动状态。当Android终止操作系统进程时,它还将终止任何正在运行的
服务。根据
服务
的配置方式,Android可能会重新启动
服务
。我想要实现的是,一旦用户登录到我的应用程序,一个服务就会一直运行(自动更新),即活动1,并一直运行到我注销为止。使用服务在后台处理事情,并保存重要数据(使用SharedReferences或将其保存到文件/数据库),以便在以下情况下(或在以下情况下)不会丢失它活动会被破坏,不要使用活动来保存状态信息。@bikash\u binay:那么你已经问了一个X换Y的问题。请编辑你的问题或问一个新问题,列出你真正想要达到的目标。是的,通常最好确切地说明目标是什么,而不仅仅是问一些具体的方法-可能是这样这完全是错误的做法。