私は今3日間立ち往生しています。私はどこでも答えを見つけることができないため、信じられないほど基本的または非常に複雑です。私はBroadcastReceiverとその放送を開始するためのインテントを送るボタンを持っています。別のデータを送信するボタン(int ++)をクリックするたびに、インテントは10mのタイマーを持つので、2つの問題があります。同じ放送の複数のインスタンスを同時に実行する方法
1 :データを送信するには、sendBroadcast(intent)
を使用する必要がありますが、タイマーを設定するにはAlarmManagerを使用し、インテントとIntentにAlarmManagerを入れるだけで、最初に挿入されたデータが送信されます私はこれを解決する?
2:同じBroadcastReceiverのインスタンスを2つ以上持ち、アラームを同時にカウントしたいと思います。事例:ユーザーが1つのアラームを作成し、5m後に別のアラームを作成すると、1つのアラームが実行され、10秒後に2番目のアラームが実行され、最初のアラームが上書きされます。第1のものと第2のものを設定した後に第2のものを実行します。これをどのように達成するのですか?
マイbroadcastReceiver:
public class Broadcast_RemoveClass extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int i = intent.getExtras().getInt("mInt");
Toast.makeText(context, "done"+i, Toast.LENGTH_LONG).show();
}
}
onClickの内側の意図送信:それはただの質問のいずれかにいたとしても、は
public void startAlert(int i) {
Intent intent = new Intent(getActivity(), Broadcast_RemoveClass.class);
Bundle bd = new Bundle();
bd.putInt("mInt", i);
intent.putExtras(bd);
// getActivity().sendBroadcast(intent);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000 * 60 * 10, pendingIntent);
Toast.makeText(getActivity(), "countdown started " ,Toast.LENGTH_SHORT).show();
}
Guysは助けてくださいを
ありがとう、これは私が探していたものです! –
あなたは歓迎です...答えがあなたの質問を満たしたら、それを受け入れたものとしてマークします。チェックボックスをクリックしてください... upvoteしないでください。 – Anonymous
はい私は練習を意識していますが、他の質問に未回答のまま残っているため、受け入れられたとマークしないことにしました –