如何在活动或碎片中正确释放外部资源?

时间:2015-07-27 14:09:27

标签: android android-fragments android-activity

我很困惑。根据文档,Activity(或片段)生命周期无法保证,在销毁之前将调用 onStop ()和 onDestroy ()。但是需要释放一些外部资源。例如:调用 MediaPlayer.release ()。

另一个例子是用于处理beacons的库。

使用 onDestroy 事件:

@Override 
protected void onDestroy() {
    super.onDestroy();
    beaconManager.unbind(this);
}

当您需要释放一些资源时,依靠 onDestroy 方法是一种好习惯吗?

2 个答案:

答案 0 :(得分:0)

更好的选择是在onPause()中释放资源并在onResume()中锁定/重新捕获它。

如果活动甚至没有呼叫onPause(),那么这意味着它已意外停止或被强制关闭。然后在大多数情况下,整个应用程序已停止。因此,没有正在运行的线程,这意味着资源已自动释放。因此,onPause()可能是释放资源的最佳位置。

答案 1 :(得分:0)

我建议您在单独的方法中定义释放逻辑,并从onPause(),
中调用它 您可以对方法onResume()

中的资源分配逻辑执行相同的操作