Android 锁屏事件监听
有时候会去监听锁屏事件,方便我们处理一些事情.
屏幕的解锁和锁屏是比较频繁的事件,所以需要动态注册广播接收者. 比如,下面这个Service是用来监听锁屏,然后做进程清理的.
/**
* 监听系统是否锁屏的服务 当接收到系统锁屏的广播,清理内存
*/
public class LockScreenClearService extends Service {
private static final String TAG = "LockScreenClearService";
private IntentFilter mIntentFilter;
private ScreenOffReceiver mReceiver;
public LockScreenClearService() {
}
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
//1, 定义锁屏的IntentFilter
mIntentFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
//2, 定义锁屏广播接收者
mReceiver = new ScreenOffReceiver();
//3, 注册广播接收者
registerReceiver(mReceiver,mIntentFilter);
super.onCreate();
}
@Override
public void onDestroy() {
if (mReceiver != null) {
unregisterReceiver(mReceiver);
}
super.onDestroy();
}
class ScreenOffReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){
//清理所有能清理的进程
ProcessInfoProvider.killAllProcess(context);
LogUtil.d(TAG,"清理所有进程完成");
}
}
}
}
复制代码