このように Groups.class アクティビティの onCreate で AlarmManager によって 20 秒ごとに呼び出される Service "GroupsTaskAlarmChecker" があります。
int seconds = 20;
Intent myIntent = new Intent(Groups.this, GroupsTaskAlarmChecker.class);
pendingIntent = PendingIntent.getService(Groups.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), seconds * 1000, pendingIntent);
これは完全に機能します。しかし、デバイスの起動時にそれを行う必要があります。次に、次のように AndroidManifest を作成する必要があることを知っています。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".ReceiverBoot">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
<category android:name="android.intent.category.HOME">
</category></action></intent-filter>
</receiver>
そして、mi broadcastReceiver を次のようにします。
public class ReceiverBoot extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int seconds = 20;
Intent myIntent = new Intent(context, GroupsTaskAlarmChecker.class);
pendingIntent = PendingIntent.getService(context, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), seconds * 1000, pendingIntent);
}
}
しかし、この onReceive 内では、以前と同じことを行う方法がわかりません (20 秒ごとにサービスを開始する意図と alarmManager を使用)。この行のエラー:
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
BroadcastReceiver内でAlarmManagerを作成できない可能性はありますか?
私は Android のビギナーであり、あなたの助けが必要です。私の英語でごめんなさい;)