Michele
- Forum-Beiträge: 1.525
12.06.2013, 01:14:55 via Website
12.06.2013 01:14:55 via Website
Hallo Forum.
Ich merke gerade das mit meinem Service und BroadcastReceiver etwas nicht stimmt.
Mein Service soll alle 24 Stunden meinen BroadcastReceiver ausführen.
Und dann Startet er wieder meinen Service der wieder die nächsten 24 Stunden
den BroadcastReceiver ausfürt. Und immer wieder das gleiche.
Bei kurzen Zeiten geht das. Aber bei 24 Stunden geht das irgendwie nicht.
Und warum? Killt der Service sich selbst nach einiger Zeit obwohl der AlarmManager läuft?
Warum ich das so umständlich mache mit einem Service?
Der Service wird durch mein Widget gestartet. Wenn ich ein Widget Starte kann ich kein BroadcastReceiver Starten.
Aber einen Service.
Service:
BroadcastReceiver:
LG
Ich merke gerade das mit meinem Service und BroadcastReceiver etwas nicht stimmt.
Mein Service soll alle 24 Stunden meinen BroadcastReceiver ausführen.
Und dann Startet er wieder meinen Service der wieder die nächsten 24 Stunden
den BroadcastReceiver ausfürt. Und immer wieder das gleiche.
Bei kurzen Zeiten geht das. Aber bei 24 Stunden geht das irgendwie nicht.
Und warum? Killt der Service sich selbst nach einiger Zeit obwohl der AlarmManager läuft?
Warum ich das so umständlich mache mit einem Service?
Der Service wird durch mein Widget gestartet. Wenn ich ein Widget Starte kann ich kein BroadcastReceiver Starten.
Aber einen Service.
Service:
1public class Service extends Service {
2
3
4 @Override
5 public int onStartCommand(Intent intent, int flags, int startId) {
6
7 Intent intentS = new Intent(getApplicationContext(), BroadService.class);
8 PendingIntent pending = PendingIntent.getBroadcast(getApplicationContext(), 0, intentS, 0);
9 AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
10 Calendar calendar = Calendar.getInstance();
11 calendar.setTimeInMillis(System.currentTimeMillis());
12 calendar.add(Calendar.SECOND,84000);
13 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 0, pending);
14
15 stopSelf();
16 return super.onStartCommand(intent, flags, startId);
17 }
18
19
20 @Override
21 public IBinder onBind(Intent intent) {
22 return null;
23 }
24}
2
3
4 @Override
5 public int onStartCommand(Intent intent, int flags, int startId) {
6
7 Intent intentS = new Intent(getApplicationContext(), BroadService.class);
8 PendingIntent pending = PendingIntent.getBroadcast(getApplicationContext(), 0, intentS, 0);
9 AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
10 Calendar calendar = Calendar.getInstance();
11 calendar.setTimeInMillis(System.currentTimeMillis());
12 calendar.add(Calendar.SECOND,84000);
13 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 0, pending);
14
15 stopSelf();
16 return super.onStartCommand(intent, flags, startId);
17 }
18
19
20 @Override
21 public IBinder onBind(Intent intent) {
22 return null;
23 }
24}
BroadcastReceiver:
1public class BroadService extends BroadcastReceiver {
2
3 @Override
4 public void onReceive(Context context, Intent intent) {
5
6//
7 Mein Code...
8//
9
10 Intent service = new Intent(context, Service.class);
11 context.startService(service);
12
13 }
14}
2
3 @Override
4 public void onReceive(Context context, Intent intent) {
5
6//
7 Mein Code...
8//
9
10 Intent service = new Intent(context, Service.class);
11 context.startService(service);
12
13 }
14}
LG
— geändert am 12.06.2013, 01:20:38
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.