如何区分屏幕关闭和android中后台发送的活动

时间:2015-04-12 17:43:10

标签: java android

我正在编写一个说话和倾听用户的应用程序。基本上是一个应用程序,允许拨打电话,而无需查看或触摸设备(信不信由你,我没有在市场上找到任何!)。 这里的要点是我想要:

  • 在屏幕熄灭时继续运行
  • 在用户切换到另一个活动时停止运行

我没有看到一种简单的方法来理解这一点。 我已经调查了这个:How to stop a background thread when the screen in android device goes off

但是事件是以错误的顺序触发的(来自我的日志):

  • onPause:屏幕状态UNKNOWN
  • onStop:屏幕状态UNKNOWN
  • 屏幕事件:关闭

    public class ScreenReceiver extends BroadcastReceiver {
    
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            // do whatever you need to do here
            wasScreenOn = ScreenStatus.OFF;
            Log.d(TAG,"screen event OFF");
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            // and do whatever you need to do here
            wasScreenOn = ScreenStatus.ON;
            Log.d(TAG,"screen event ON");
        }
    }
    }
    

1 个答案:

答案 0 :(得分:2)

尝试使用 PowerManager ,如本文所示,希望它有所帮助。看起来像你需要的,

how to check screen on/off status in onStop()?