Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android服务检查用户屏幕是否打开或关闭_Java_Android_Analytics - Fatal编程技术网

Java Android服务检查用户屏幕是否打开或关闭

Java Android服务检查用户屏幕是否打开或关闭,java,android,analytics,Java,Android,Analytics,有没有办法创建一个永远在后台运行的服务,让Android用户检查屏幕是否打开或关闭,等等 我将创建一个分析,所以我需要知道用户何时打开或关闭屏幕 谢谢,我将非常感谢您提供的所有输入您可以使用Android广播接收器来检测屏幕的打开和关闭。 这是一个很好的例子 你也可以遵循这个思路 您需要创建广播接收器并管理屏幕打开或关闭状态 Declare receiver in manifest: <receiver android:name=".DeviceWakeUpR

有没有办法创建一个永远在后台运行的服务,让Android用户检查屏幕是否打开或关闭,等等

我将创建一个分析,所以我需要知道用户何时打开或关闭屏幕


谢谢,我将非常感谢您提供的所有输入

您可以使用Android广播接收器来检测屏幕的打开和关闭。 这是一个很好的例子

你也可以遵循这个思路

您需要创建广播接收器并管理屏幕打开或关闭状态

     Declare receiver in manifest:    
     <receiver android:name=".DeviceWakeUpReceiver" />


    public class DeviceWakeUpReceiver extends BroadcastReceiver {
        private static final String TAG = "DeviceWakeUpService";
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d(TAG, "onReceive() called");
            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                //End service when user phone screen off

            } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                //Start service when user phone screen on

            }
        }
    }
在清单中声明接收方:
公共类设备WakeUpreceiver扩展广播接收器{
私有静态最终字符串TAG=“DeviceWakeUpService”;
@凌驾
公共void onReceive(上下文、意图){
d(标记“onReceive()调用”);
if(intent.getAction().equals(intent.ACTION屏幕关闭)){
//用户手机屏幕关闭时结束服务
}else if(intent.getAction().equals(intent.ACTION_屏幕_打开)){
//当用户手机屏幕打开时启动服务
}
}
}

您不能使用广播接收器接收屏幕关闭/打开事件。 编写一个intent服务,该服务通过引导完整侦听器启动,并注册intent.ACTION\u SCREEN\u OFF和intent.ACTION\u SCREEN\u ON

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
registerReceiver(new ScreenOffOnReceiver(), filter);

class ScreenOffOnReiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
         if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
             // Screen OFF
         else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
             // Screen ON
         }
    }
}
可能重复的