Nik*_*lin 13 resources android
我创建了一个使用相机的应用程序,在应用程序执行期间,屏幕始终打开.
在onCreate()方法中我添加了锁:
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
this.mWakeLock.acquire();
Run Code Online (Sandbox Code Playgroud)
这是覆盖onStop()方法:
@Override
protected void onStop() {
if(mWakeLock.isHeld())
{
mWakeLock.release();
}
super.onStop();
}
Run Code Online (Sandbox Code Playgroud)
但是在应用程序终止后,屏幕一直处于打开状态,如果我运行相机应用程序,它会遇到一个错误,这个错误很明显,因为相机资源没有被释放.
有没有人知道如何在应用程序终止时释放所有资源?
Wil*_*ill 13
我会把锁OnCreate()移到OnResume().您希望在活动的可见生命周期内锁定,而不是活动的整个生命周期.你的活动可以肯定仍然在运行前面的另一个Activity运行.
我会把这个版本移到OnPause(). OnPause()是您的应用程序通常应该被操作系统杀死的最早点.
另外,在发布之前我不会检查是否有锁.如果你OnResume()用来获得锁; isHeld永远应该是真实的OnPause().
| 归档时间: |
|
| 查看次数: |
11376 次 |
| 最近记录: |