SCREEN_OFF BroadcastReceiver无法正常工作

时间:2016-03-21 07:06:44

标签: android broadcastreceiver screen-off

这是我的代码。

UIViewController
检测到

public class MyActivity extends Activity { ... @Override protected void onStart() { super.onStart(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("com.my.ACTION"); intentFilter.addAction(Intent.ACTION_SCREEN_OFF); registerReceiver(broadcastReceiver, intentFilter); } @Override protected void onStop() { super.onStop(); unregisterReceiver(broadcastReceiver); } ... private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("com.my.ACTIOIN".equals(action)) { updateMessageInformation(intent); updateDialog(); } else if (Intent.ACTION_SCREEN_OFF.equals(action)) { finish(); } } }; ... } 并且工作正常

但是,屏幕关闭时未检测到com.my.ACTION

Intent.ACTION_SCREEN_OFF(android.intent.action.SCREEN_OFF)Activity开始(从其他接收方开始)。

我有什么不对的?

1 个答案:

答案 0 :(得分:0)

unregister移至onDestroy。当屏幕关闭时,onStop正在呼叫。

参考https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

如果活动不再可见,则会调用onStop方法。

@Override
protected void onDestroy() {
    super.onDestroy();

    unregisterReceiver(broadcastReceiver);
}