android销毁activity时onDestroy总是被调用来节省内存但不杀死App吗?
Is onDestroy always called when android destroys activity to save memory but does not kill App?
我想使用 Application.ActivityLifecycleCallbacks
来监控后台堆栈中有多少活动。我可以 increment/decrement 反击 onCreate/onDestroy 来处理这个问题吗?
onDestroy() 是 Activity 实例在被销毁并从内存中完全删除之前调用的最终方法。在极端情况下 Android 可能会终止托管 Activity 的应用程序进程,这将导致 OnDestroy 不被调用。显然大多数 Activity 不会实现此方法,因为大多数清理和关闭已在 OnPause 和 OnStop 方法中完成。
有关详细信息,请访问 Android 开发人员门户。
(https://developer.android.com/reference/android/app/Activity.html "Android Developers")
onDestroy NOT 保证在每次 activity 被销毁时调用。
如果用户点击返回销毁它,就会调用onDestroy。
如果用户从最近的应用程序菜单中滑动应用程序,将不会调用 onDestroy。
如果应用程序崩溃,它是否会被调用是不确定的(根据我的经验,它不会被调用)。
Is onDestroy always called when android destroys activity to save memory?
是
文档:
在你的 activity 被摧毁之前你接到的最后一个电话。这可能是因为 activity 正在完成(有人在其上调用 finish()
,或者因为系统正在临时销毁 activity 的这个实例以保存 space。你可以用isFinishing()
方法区分这两种情况。
I want to use Application.ActivityLifecycleCallbacks to monitor how
many activities are there in the back-stack. Can I increment/decrement
counter in onCreate/onDestroy to handle this?
最好在 onStart()
和 onStop()
方法中反击,onCreate() 不保证可见性。例如,如果某事以某种方式阻止了 onStart()
的发生。
我想使用 Application.ActivityLifecycleCallbacks
来监控后台堆栈中有多少活动。我可以 increment/decrement 反击 onCreate/onDestroy 来处理这个问题吗?
onDestroy() 是 Activity 实例在被销毁并从内存中完全删除之前调用的最终方法。在极端情况下 Android 可能会终止托管 Activity 的应用程序进程,这将导致 OnDestroy 不被调用。显然大多数 Activity 不会实现此方法,因为大多数清理和关闭已在 OnPause 和 OnStop 方法中完成。 有关详细信息,请访问 Android 开发人员门户。 (https://developer.android.com/reference/android/app/Activity.html "Android Developers")
onDestroy NOT 保证在每次 activity 被销毁时调用。
如果用户点击返回销毁它,就会调用onDestroy。
如果用户从最近的应用程序菜单中滑动应用程序,将不会调用 onDestroy。
如果应用程序崩溃,它是否会被调用是不确定的(根据我的经验,它不会被调用)。
Is onDestroy always called when android destroys activity to save memory?
是
文档:
在你的 activity 被摧毁之前你接到的最后一个电话。这可能是因为 activity 正在完成(有人在其上调用 finish()
,或者因为系统正在临时销毁 activity 的这个实例以保存 space。你可以用isFinishing()
方法区分这两种情况。
I want to use Application.ActivityLifecycleCallbacks to monitor how many activities are there in the back-stack. Can I increment/decrement counter in onCreate/onDestroy to handle this?
最好在 onStart()
和 onStop()
方法中反击,onCreate() 不保证可见性。例如,如果某事以某种方式阻止了 onStart()
的发生。