最频繁触发Android接收器?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最频繁触发Android接收器?相关的知识,希望对你有一定的参考价值。
什么是最常触发的android意图操作,我的应用程序可以让BroadcastReceiver
监听没有服务运行,以便接收它?
背景
我有一个前台服务,只要用户在手机上,就需要大致运行。当屏幕关闭时我关闭了服务,因此可以实现打盹模式(是的,前台运行服务阻止打盹模式,即使文档没有明确说明)。
尝试重新打开服务时出现问题。
我已经研究过SCREEN_ON
和USER_PRESENT
,但两者似乎都需要一个正在运行的后台服务才能被接收,否定了我想要实现的目标。
所以我的想法是,我想知道当用户在场时我是否有足够频繁的触发动作而不是SCREEN_ON
/ USER_PRESENT
?
答案
我发现最好的方法是在"android.intent.action.USER_PRESENT"
动作上注册BroadcastReceiver。
为了区分用户在未锁定时将屏幕打开到实际解锁时的情况,请使用KeyguardManager
检查安全设置。
在活动中添加此项
registerReceiver(new PhoneUnlockedReceiver(), new IntentFilter("android.intent.action.USER_PRESENT"));
并使用这个:
public class PhoneUnlockedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
KeyguardManager keyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
if (keyguardManager.isKeyguardSecure()) {
//do stuff here
}
}
}
快乐的编码!!
以上是关于最频繁触发Android接收器?的主要内容,如果未能解决你的问题,请参考以下文章