私はアラームアプリを構築しています。アラームがインテントを開始すると、「魔法」が発生するレシーバーが開始されます。どういうわけか、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
。それでも、変更しても、レシーバーは複数回呼び出されます。