こんにちは私はユーザーが場所をマークできるアプリを作成する必要があるので、その場所に対応するアラームがあります.BroadCastレシーバーで開始しました放送受信機に登録しましたすべてが正常に機能していましたが、場所の保留中のインテントが何度も同じように起動していますこの記事で説明されている問題
ここ。
多くの人がこのような同じ問題に直面している多くの質問があります
アクティビティonCreateメソッドでブロードキャストレシーバーを登録すると、最初の記事に解決策があります。これは、押し戻して登録を自動的に解除したときに、そのアクティビティにフォーカスがある場合にのみ機能しました。放送受信機をずっと動かしたい。実際には、[保存]をクリックするとアラートが表示され、その場所の近接アラートが保存されます。これは、アプリに関連する近接アラートを登録するための関連コードです。
String s=System.currentTimeMillis()+"";
Intent intent = new Intent(PROX_ALERT_INTENT+s);
intent.putExtra("longitude", longitude);
intent.putExtra("latitude", latitude);
PendingIntent proximityIntent = PendingIntent.getBroadcast(getApplicationContext(), i, intent, PendingIntent.FLAG_UPDATE_CURRENT);
locationManager.addProximityAlert(
latitude, // the latitude of the central point of the alert region
longitude, // the longitude of the central point of the alert region
1000, // the radius of the central point of the alert region, in meters
-1, // time for this proximity alert, in milliseconds, or -1 to indicate no expiration
proximityIntent // will be used to generate an Intent to fire when entry to or exit from the alert region is detected
);
IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT+s);
registerReceiver(new ProximityAlertReceiver(), filter);
アクション文字列に定数とタイムスタンプを含むインテントを作成しています。次に、同じ定数+time_stampでブロードキャストレシーバーを登録しています。アラームは正常に機能していますが、アクティビティがフォアグラウンドにある場合にのみ機能します。それ以外の場合、アラームは機能しません。近接アラートを追加して、このタスクを実行するための1回だけまたは代替ソリューションを実行する方法を教えてください。