H
Hungrig
Erfahrenes Mitglied
- 37
Hallo,
ich habe einen AlarmManager, der alle X Sekunden eine Aufgabe erledigen soll. Leider wird der entsprechende Code nicht aufgerufen. Der Dienst läuft, denn
"AlarmManager gesetzt" ist im LogCat zu lesen.
Im Beispielfall müsste nun alle 10 Sekunden "Alarmreceiver" im LogCat erscheinen. Leider passiert aber gar nichts.
Wo ist der Fehler?
Hier ist der Code
ich habe einen AlarmManager, der alle X Sekunden eine Aufgabe erledigen soll. Leider wird der entsprechende Code nicht aufgerufen. Der Dienst läuft, denn
"AlarmManager gesetzt" ist im LogCat zu lesen.
Im Beispielfall müsste nun alle 10 Sekunden "Alarmreceiver" im LogCat erscheinen. Leider passiert aber gar nichts.
Wo ist der Fehler?
Hier ist der Code
Code:
public class TestService extends Service
{
Context context;
AlarmReceiver meinAlarmReceiver;
@Override
public void onCreate()
{
context = getApplicationContext();
meinAlarmReceiver = new AlarmReceiver();
registerReceiver(meinAlarmReceiver, new IntentFilter());
int keepAlive = 10; //Every 10 seconds
System.out.println("AlarmManager gesetzt");
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context,TestService.class);
//Intent i = new Intent(context,TestService.AlarmReceiver.class); //Egal ob hier TestService.class oder TestServiceAlarmReceiver.class steht, es funktioniert nicht
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
//am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + keepAlive * 1000, keepAlive * 1000, pi);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), keepAlive * 1000, pi);
}
@Override
public void onDestroy()
{
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent)
{
// TODO Auto-generated method stub
return null;
}
public int onStartCommand(Intent intent, int flags, int startId)
{
System.out.println("On StartCommand");
return START_STICKY;
}
class AlarmReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
System.out.println("Alarmreceiver");
}
}
}