我必须允许我的应用程序在用户关闭屏幕时执行操作,但是当用户转到主屏幕(或其他应用程序)时我必须停止服务。
我试图处理电源按钮,但它无法正常工作。 然后我像这样创建ScreenReceiver:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
wasScreenOn = true;
}
}
但它改变了 wasScreenOn 值太晚了(在调用onStop方法之后)
@Override
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop");
if (powerButtonClicked)
return;
if (mBound) {
mMediaService.onStop();
}
}
电源按钮总是假的......它变化太晚了
如何正确地做到这一点?
答案 0 :(得分:0)
好的,我找到了答案。 您需要做的就是声明PowerManager
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
和onStop()
if (!powerManager.isScreenOn())
{
// Screen is off
}