Android文档说(在http://developer.android.com/training/basics/activity-lifecycle/stopping.html中):
在极端情况下,系统可能只是在不调用活动的最终onDestroy()回调的情况下杀死您的应用程序进程,因此使用onStop()释放可能泄漏内存的资源非常重要.
听起来像是错的.如何杀死进程泄漏内存?
假设您在onStart()方法中启动了一个服务,并且当用户离开Activity时您打算停止该服务.
如果你把代码放在onDestroy()中停止服务,那么代码可能永远不会被调用,这可能会使该服务继续运行,直到Android决定杀死它(这可能暂时不会发生,如果有的话).该运行服务是泄漏应用程序外部内存/资源的示例.
你应该把这样的清理代码放在一个保证被调用的方法中.
请注意,在调用onPause()之后进程是可以运行的,因此onPause()实际上是您想要进行清理的地方,绝对必须发生.
(有关活动生命周期的详细信息,请参阅https://developer.android.com/guide/components/activities.html中的表1 )
泄漏可能非常糟糕的另一件事:蓝牙发现或位置报告(GPS或基于网络)打开但不能尽快关闭 - 对电池寿命非常不利.
归档时间: |
|
查看次数: |
1061 次 |
最近记录: |