我正在构建一个警报应用程序。当警报启动意图时,接收器会在“魔术”发生的地方启动。不知何故,onReceive()
广播接收器内部的方法被多次调用。
任何想法为什么会发生?
编辑:
仅当屏幕关闭时才调用一次以上,如果屏幕打开则不会发生。当屏幕关闭时,我调用此代码将其打开:
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock kl = km.newKeyguardLock("MyKeyguardLock");
kl.disableKeyguard();
WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.ON_AFTER_RELEASE, "MyWakeLock");
wakeLock.acquire();
我究竟做错了什么?在AndroidManifest.xml
我使用此代码注册广播接收器:
<receiver android:name="com.xxx.xxx.myAlarmReceiver" >
<intent-filter>
<action android:name="REFRESH_THIS" />
</intent-filter>
</receiver>
我不确定REFRESH_THIS
. 但是,如果我改变它,接收器仍然会被调用不止一次。