に登録broadcastreceiver
しますAndroidMainfest.xml
私のアプリでは、ユーザーが時間を設定できる機能があり、この時点でアプリは通知を送信します。引数 User set を取得し、ユーザーが設定alarmManager
した時間に発生するタスクを設定するために使用します。
しかし、GOOGLE API には次のように書かれていることがわかりました。
If there is already an alarm for this Intent scheduled (with the equality of two intents being defined by filterEquals(Intent)), then it will be removed and replaced by this one.
したがって、2つ以上のタスクを設定したい場合、インテントは置き換えられ、最終的に1つの通知しか取得できず、それは私が望む結果ではありません.
そして、アクション、データ、タイプ、クラス、およびカテゴリによってインテントが識別されていることがわかりましたが、アクションを変更することはできません(インテントのアクションはインテントフィルターのアクションが AndroidMainfest.xml に登録されていました)が、その時点で他の引数を変更すると、ブロードキャストを受信することさえできません。
この問題を解決するには4つの方法があると思っていましたが、1つしか作成できませんでした..
- たくさん作成し
broadcastreceiver
て登録することでAndroidMainfest.xml
、インテントのアクションを変更することができます - をプログラムに登録し
broadcastreceiver
ましたが、できませんでした - 使用サービス + タイマー クラス ..
- 変更アクションなしで 2 つの意図を異なるものにする。
どんな助けでも大歓迎です!!
Intent intent = new Intent("aaa"); //there was a broadcastreceiver's intent-filter "aaa"
intent.putExtra("title", title);
intent.putExtra("table", "计划");
PendingIntent pi = PendingIntent.getBroadcast(Alarm.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Alarm.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+time, pi);
コードは onClickListener{onClick(){}} にあります