これらのクラスでは、開始時にアラームを設定し、10 秒後にアラームが開始されます。ユーザーがアラームを有効または無効にしているかどうかを確認するための sharedpreferences からの読み取りもあります。今、アプリがアクティブでないとき(再起動後など)、またはアプリが強制終了されたときもスターアラームが必要です。AlarmReceiver: MainActiAlarmRAlarmReceiver:eceiver:vity
public class MainActivity extends Activity {
AlarmReceiver:AlarmReceiver:
Boolean set;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent, PendingIntent.FLAG_ONE_SHOT);
// read from sharepreferences
// [...]
//
if (set){
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
}
}
アラーム受信者:
public final class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
}
}
マニフェスト:
<receiver android:name="AlarmReceiver"></receiver>