AppWidget のインテント処理について質問があります。クリック可能なウィジェットがあり、クリックすると、さらに処理するために AppWidgetProvider 自体にインテントを送信したいと考えています。
問題: 最初は onReceive() でインテントを受け取りますが、しばらくすると (何が原因かわかりません)、onReceive() が呼び出されなくなります。
次のコードがあります。すべて MyWidgetProvider で AppWidgetProvider を拡張します。
a) ブロードキャストを受信するための登録:
in onEnabled(...):
context.getApplicationContext().registerReceiver(this, new IntentFilter(MY_ACTION));
b)クリック時にインテントが起動されるように設定します。
in onUpdate(...)
Intent intent= new Intent(MY_ACTION);
PendingIntent pendingIntent= PendingIntent.getBroadcast(context, 0/*notusedanyway*/, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.widget_root, pendingIntent);
c) イベントに反応して何かをする:
in onReceive(...)
if (MY_ACTION.equals(intent.getAction())
doSomething();
ウィジェットをデプロイして追加すると、正常に動作します。ただし、しばらくすると、何が問題を引き起こしているのか正確にはわかりませんが、たとえば電話が影響しているようです-onReceive()で通知を受け取りません。
なぜこれが事実なのか、私は完全に困惑しています。誰かがこれを行う正しい方法を私に指摘できますか?
ありがとう!
トム