Mam Service "GroupsTaskAlarmChecker", która jest wywoływana co 20 sekund AlarmManager w onCreate aktywności Groups.class ten sposób:AlarmManager wewnątrz BroadcastReceiver gdy BOOT_COMPLETED
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);
to działa doskonale. Ale muszę to zrobić po uruchomieniu urządzenia. Wtedy wiem, że muszę zrobić AndroidManifest tak:
<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>
a potem mi broadcastReceiver tak:
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);
}
}
ale wewnątrz tego onReceive nie wiem, jak mogę zrobić to samo, że zrobiłem przed (z intencją i alarmManager, aby uruchomić usługę co 20 sekund). błąd w tej linii:
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Czy to możliwe, że nie mogę zrobić AlarmManager wewnątrz BroadcastReceiver?
Dziękuję wszystkim, jestem początkującym Androidem i potrzebuję twojej pomocy. Przepraszam za mój angielski;)
Zapomniałem napisać wiersz w tym pytaniu, ale nie w kodzie @ Jacob. i init, które odbierają nadawanie działa (zanim przetestuję działanie init i jego ok), chcę tylko wiedzieć o napisaniu pierwszego kodu, który napisałem do metody onReceive. czy to możliwe? – carlosdiazp