100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android Home键 锁屏键监听

Android Home键 锁屏键监听

时间:2023-03-23 12:59:04

相关推荐

Android Home键 锁屏键监听

一、代码实现如下

/*** @author 郭翰林* @date /10/31 0031 10:04* 注释: 锁屏按钮和Home键监听*/public class ScreenBroadcastReceiver extends BroadcastReceiver {private static volatile ScreenBroadcastReceiver instance;private boolean isReceiver;/*** 注释:获取单例* 时间:/10/31 0031 14:46* 作者:郭翰林** @return*/public static ScreenBroadcastReceiver getInstance() {synchronized (ScreenBroadcastReceiver.class) {if (instance == null) {instance = new ScreenBroadcastReceiver();}return instance;}}@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {UmsAgent.postHistoryLog(SysApplication.getInstance());}}/*** 注释:注册屏幕监听广播* 时间:/10/31 0031 10:05* 作者:郭翰林*/public void registerScreenReceive(Context context) {IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);if (!isReceiver) {isReceiver = true;context.registerReceiver(instance, filter);}}/*** 注释:取消注册屏幕监听广播* 时间:/10/31 0031 10:05* 作者:郭翰林*/public void unregisterScreenReceive(Context context) {if (isReceiver && instance != null) {isReceiver = false;context.unregisterReceiver(instance);}}}复制代码

二、使用方式

ScreenBroadcastReceiver.getInstance().registerScreenReceive(SysApplication.getInstance());复制代码

这里有几个注意点:

Context传递applicationcontext,因为是单例,避免内存释放不了,引起不必要的BUG只需在应用启动页的onCreate()方法中使用调用一次即可unregisterScreenReceive()反注册可调可不调,调用一次之后监听取消,再次调用registerScreenReceive()方法开启监听。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。