データベースにリマインダーのコレクションがあります(時間順)。アプリケーションが起動したら、 を呼び出しますsetAlarm
。onReceive
これらのタスクを実行するには、メソッドにコードを追加する必要があります。
- データベースから最初のリマインダーを取得する
- リマインダーに関連付けられた遅延を取得します
- 次のリマインダーを取得するために新しいアラームをスケジュールします。
簡単な BroadcastReceiver クラスを作成しました。
public class AlarmReceiver extends BroadcastReceiver{
private static final String DEBUG_TAG= "AlarmReceiver";
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Log.d(DEBUG_TAG,"ALARM!!!");
// --mycode--
}
}
および Activity クラス:
public class AlarmActivity extends Activity {
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
context = getApplicationContext();
}
public void setAlarm(View v){
Intent intent = new Intent(this,AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ Delay,pendingIntent);
Log.i("SETTER","Alarm started");
}
public void stopAlarm(View v){
Intent intent = new Intent(this,AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
pendingIntent.cancel();
}
}
ここで、--mycode--
セクションで新しい遅延がデータベースから取得され (存在する場合)、この新しい遅延で新しいアラームが設定されるようにします。onReceive メソッドから新しい AlarmManager を設定するにはどうすればよいですか?