在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action。奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到。查了一下,发现这是PowerManager那边在发这个广播的时候,做了限制,限制只能有register到代码中的receiver才能接收。
- private void registerScreenActionReceiver(){
- final IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_SCREEN_OFF);
- filter.addAction(Intent.ACTION_SCREEN_ON);
- registerReceiver(receiver, filter);
- }
- private final BroadcastReceiver receiver = new BroadcastReceiver(){
- @Override
- public void onReceive(final Context context, final Intent intent) {
- // Do your action here
- }
- };
那怎么才能保证我的服务一直是启动状态呢,其实还有另一个Action可以反映出用户正在使用手机的行为,每个用户在使用手机的时候,首先按电源键将屏幕点亮,紧接着就是解锁。解锁动作通过android.intent.action.USER_PRESENT发送出来,我们就能识别出该用户进入了home界面,也就能启动我们相应的服务了,不管你是要谈对话框welcome用户,还是后台启动程序升级服务,都可以!以神的名义发誓,该Action在AndroidManifest.xml中可以监听得到。
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".ScreenActionTestActivity"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <receiver android:name=".ActionReceiver">
- <intent-filter android:priority="90000">
- <action android:name="android.intent.action.USER_PRESENT" />
- </intent-filter>
- </receiver>
- </application>
http://blog.csdn.net/chenghai2011/article/details/7219336
相关推荐
简单好用的全局监听器,没有用任何的第三方库,代码简单明了
c# hook钩子实现全局的鼠标点击可监听程序外的事件,单击,双击,滚轮,按键事件的触发,键盘按键的全局监听,鼠标的监听,程序可直接运行,供大家测试
使用键盘全局监听以实现在程序之外的页面上按键也可以监听此功能用来进行射击游戏的连射等辅助
Java监听键盘鼠标全局事件[定义].pdf
使用Qt封装的支持Windows、Linux的跨平台全局鼠标、键盘事件监听器库
hook全局监听键盘事件
给键盘添加全局监听需要用到的包jintellitype-1.3.9 内含示例源代码
当时想到的就是使用全局变量,在 app.js 中定义好全局变量,点击组件页面时就修改全局变量的值,父页面同样使用全局变量的值,这样一来就可以动态打开/关闭弹出层且传递值了。 下面先看看 app.js 中怎么定义的: ...
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
QT 下的全局键盘监听例子,用sqlite记录某个路径下的可执行文件或软件的信息,然后监听pause键。当用户按下pause键,然后再输入某个软件的关键字时,比如ps,然后空格或回车就可以启动photoshop。Qt 4.8环境编译通过...
主要在vue项目中使用了websock的消息应答方式,使其可以全局使用socket消息
(1)当C#监听页面窗口,不在第一页面或者页面窗口不在最前方时,能监听到键盘的任何一个键的信息; (2)当C#监听窗口隐藏时,也可以监听到键盘信息,还可以设置快捷键: (3)C#代码写作过程中,可做键盘交互,...
Global Hooks:允许您监听全局键盘和鼠标事件,因此即使您的应用程序处于非活动状态,它仍将捕获鼠标和键盘输入。 这可用于制作全局键盘快捷键。
特征空间划分(FSP) 一种局部-全局分类方法_FSP_Feature Space Partition A Local-Global Approach for Classification
使用QT实现了全键盘监听。博客参考地址:https://blog.csdn.net/qq_37529913 邮箱:Dream.2017@qq.com 有疑问可以博客地址下留言,谢谢下载。
运行后可以在后台进行监听键盘时间。后台支持打印记录,现在可以打出键盘编号,不用设置焦点就能监听键盘所有操作。
环信全局消息监听,只要app在后台运行,就能收到新的消息并通知
1.原理: 当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。... 2.2当事件源上发生操作时,它会调用事件监听器的一个方法,并且调用这个方法时,会传递事件对象过来 2.3事件监听器是由开
方式一,适配监听接口,预留全局处理接口并作为所有监听器的基类使用 抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下: public abstract class CustClickListener implements View....
Electron中通过globalShortcut实现监听键盘事件进而实现快捷键功能示例代码;Electron中通过globalShortcut实现监听键盘事件进而实现快捷键功能示例代码