2

通知を使用して、アプリにリマインダー機能(リマインダー時間を設定する)を設定したい。そして、私は、サービス、放送、警報マネージャーを使用する可能性があることを知りました。

この機能を完了するにはどうすればよいですか?

私は2つの方法があると思います:

  1. サービスを使用し、通知がサービス中です
  2. サービスを使用してブロードキャストを送信すると、通知はbroadcastReceiverにあります

最初の質問:

  1. どちらが正しいか、それとも良いですか?
  2. そのalarmmanagerの使い方は?それはJavaのTimerクラスのようなものですか?
4

1 に答える 1

0

最も簡単で効率的な方法は、リマインダーなどにAlarmManagerを使用することです。アラームを受信するBroadCastReceiverを作成する必要があります。受信者のメソッドもパラメータを受け取るため、受信者は通知を行うことができます。アラームを作成するには、AlarmManagerクラスのインスタンスを取得し、必要なものを使用してPendingIntentを作成してから、実際にアラームを設定する必要があります。onReceive()Context

アラームを設定するためのサンプルコード

Intent intent = new Intent (this, AlarmBroadcastReceiver.class);
PendingIntent pendIntent = PendingIntent.getBroadcast(this, id,  intent, //makes a new intent
PendingIntent.FLAG_UPDATE_CURRENT); //only updates PendingIntent, does not recreate
AlarmManager alarmManager = (AlarmManager) getSystemService (Context.ALARM_SERVICE);
alarmManager.cancel(pendIntent); //used to cancel if previously active
alarmManager.set(AlarmManager.RTC_WAKEUP, timeToExec, //sets the alarm to exectute once
             pendIntent);
于 2012-12-05T02:52:07.197 に答える