私のアプリでは、USER_PRESENT と AIRPLANE_MODE のインテントを受け取る必要があります。しかし、各インテントは 2 回 (場合によっては 3 回) ブロードキャストされますが、これは望ましくありません。SharedPreferences を使用してこの問題を解決しようとしていましたが、各インテントを一意に識別する必要があります (「ID」またはタイムスタンプなどがある場合)。
以下は、onReceive 呼び出しを 1 つだけ許可しようとしたコードです。
@Override
public void onReceive(Context context, Intent intent) {
final SharedPreferences instanceCount = context.getSharedPreferences("Instances",Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor instance_editor = instanceCount.edit();
if(instanceCount.getBoolean("instance",true))
{
instance_editor.putBoolean("instance",false);
instance_editor.commit();
}
else
{
instance_editor.putBoolean("instance",true);
instance_editor.commit();
return;
}
.
.
.
.
}
誰でもこれを解決するのを手伝ってくれませんか。ありがとうございました :)