本文主要是介绍Android检测手机锁屏开屏事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现在手机用户锁屏后应用很快会被手机管家杀掉进程,为了保证项目中的service一直存活,所以在用户进行锁屏时需要创建一个透明的Activity保证程序一直运行不被手机管家回收掉
1、自定义广播接收者接收手机开关机这个广播事件
package com.liveon;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;public class ScreenReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { //屏幕关闭Log.i("song","锁屏");} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { //屏幕打开Log.i("song","开屏");}}
}
2、在需要的MainActivity中动态注册广播
private void registerService() {ScreenReceiver screenBroadcastReceiver = new ScreenReceiver();IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_SCREEN_OFF);filter.addAction(Intent.ACTION_SCREEN_ON);filter.addAction(Intent.ACTION_USER_PRESENT);getApplicationContext().registerReceiver(screenBroadcastReceiver, filter);}
3、运行项目,在监测到用户锁屏时启动一个1像素的透明的Activity就可以,用户解锁时,把这个透明的activity给finish就可以了
这篇关于Android检测手机锁屏开屏事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!