Fabian W.
- Forum-Beiträge: 17
16.05.2012, 17:11:21 via Website
16.05.2012 17:11:21 via Website
Hallo,
folgendes Problem:
Sobald meine App startet lass ich verschiedene Services mitlaufen!
Diese werden beim Booten via ACTION_BOOT_COMPLETED und einem AlarmManager regelmäßig in meinem BroadcastReceiver gestartet.
(Termine aktualisieren, Pinnwand aktualisieren, Nachrichten abrufen, ...)
Jetzt möchte ich aber dem Nutzer ermöglichen, einzelne dieser Services abzuschalten!
Gibt es eine Möglichkeit dem BroadcastReceiver, neu zu starten? Denn bis jetzt kan ich bloß beim Booten die Auswahl des Benutzers überprüfen...
Hier der Broadcast Receiver:
Danke für die Hilfe Fabian
folgendes Problem:
Sobald meine App startet lass ich verschiedene Services mitlaufen!
Diese werden beim Booten via ACTION_BOOT_COMPLETED und einem AlarmManager regelmäßig in meinem BroadcastReceiver gestartet.
(Termine aktualisieren, Pinnwand aktualisieren, Nachrichten abrufen, ...)
Jetzt möchte ich aber dem Nutzer ermöglichen, einzelne dieser Services abzuschalten!
Gibt es eine Möglichkeit dem BroadcastReceiver, neu zu starten? Denn bis jetzt kan ich bloß beim Booten die Auswahl des Benutzers überprüfen...
Hier der Broadcast Receiver:
1public class BroadcastReceiverUpdate extends BroadcastReceiver {
2
3 private final static int TERMIN_AKT = 24; //jede x stunden
4
5 @Override
6 public void onReceive(Context context, Intent intent) {
7
8 if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
9 Log.v("log_tag", "Boot komplett");
10 System.out.println("Boot komplett (onReceive)");
11
12 Intent AlarmServiceIntent = new Intent(context,
13 TerminService.class);
14 PendingIntent AlarmServicePendingIntent = PendingIntent.
15 getService(context, 0, AlarmServiceIntent, 0);
16 long interval = DateUtils.HOUR_IN_MILLIS * TERMIN_AKT;
17 long firstStart = System.currentTimeMillis() + interval;
18 AlarmManager am = (AlarmManager) context
19 .getSystemService(Context.ALARM_SERVICE);
20 am.setInexactRepeating(AlarmManager.RTC, firstStart,
21 interval, AlarmServicePendingIntent);
22 Log.v("log_tag", "AlarmManager (Termine) gesetzt");
23 System.out.println("AlarmManager (Termine) gesetzt");
24 }
25 }
26
27}
2
3 private final static int TERMIN_AKT = 24; //jede x stunden
4
5 @Override
6 public void onReceive(Context context, Intent intent) {
7
8 if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
9 Log.v("log_tag", "Boot komplett");
10 System.out.println("Boot komplett (onReceive)");
11
12 Intent AlarmServiceIntent = new Intent(context,
13 TerminService.class);
14 PendingIntent AlarmServicePendingIntent = PendingIntent.
15 getService(context, 0, AlarmServiceIntent, 0);
16 long interval = DateUtils.HOUR_IN_MILLIS * TERMIN_AKT;
17 long firstStart = System.currentTimeMillis() + interval;
18 AlarmManager am = (AlarmManager) context
19 .getSystemService(Context.ALARM_SERVICE);
20 am.setInexactRepeating(AlarmManager.RTC, firstStart,
21 interval, AlarmServicePendingIntent);
22 Log.v("log_tag", "AlarmManager (Termine) gesetzt");
23 System.out.println("AlarmManager (Termine) gesetzt");
24 }
25 }
26
27}
Danke für die Hilfe Fabian
— geändert am 16.05.2012, 17:12:30
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.