Jim*_*ler 8 android broadcastreceiver
我正在尝试在打开屏幕时调用BroadcastReceiver.在我的AndroidManifest.xml中,我指定了:
<receiver android:name="IntentReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"></action>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
然而,似乎永远不会调用接收器(断点不会触发,忽略日志语句).我已经为BOOT_COMPLETED换了SCREEN_ON进行测试,这确实被调用了.
这是一个1.6(SDK级别4)项目.
谷歌代码搜索显示了这一点,我下载了项目并同步了它,将其转换为使用最新工具,但它也无法拦截该事件.
这可能不再支持了吗?
以前我已经能够通过调用Context.registerReceiver()来成功拦截此事件
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// ...
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Run Code Online (Sandbox Code Playgroud)
然而,这是由一个长寿服务.遵循CommonsWare的sage建议,我选择尝试删除长期服务并使用不同的技术.但是我仍然需要检测屏幕上的事件.
Com*_*are 13
遵循CommonsWare的sage建议,我选择尝试删除长期服务并使用不同的技术.
实际上,我相信我的建议更像是浅蓝色...... :-)
但是我仍然需要检测屏幕上的事件.
某些事件Android不想启动新进程,因此设备不会因为所有必须立即运行的各种事情而变得太慢.ACTION_SCREEN_ON就是其中之一.有关该主题的浅蓝色建议,请参阅此前一个问题.
所以,你需要问自己,"自我,我真的需要控制这些事件吗?".如果你的答案是"不",核心Android团队会喜欢它.
| 归档时间: |
|
| 查看次数: |
32913 次 |
| 最近记录: |