现在手机用户锁屏后应用很快会被手机管家杀掉进程,为了保证项目中的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 {
@Override
public 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就可以了