Android alarms, service as not been called
Frage
In my activity:
Intent myIntent = new Intent(this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Start Alarm", Toast.LENGTH_LONG).show();
The class to be called:
public class MyAlarmService extends Service {
@Override
public void onCreate() {
// TODO Auto-generated method stub
Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show();
return null;
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
}
}
With this code, MyAlarmService as not been called. Why? This code removed from a sample, which therefore tested is functioning correctly. Will I have forgotten anything?
Lösung
I think, your service is started properly. There is problem with Toast in service.
Try to change Toast.makeText()
to Log.d()
and see if record appears in your Logcat.
Problem with Toast in service has been explained here.
Andere Tipps
It seems to be right. I also tried this example in my code and it worked fine.
I think the problem is in the Manifest. You need to declare the service in the Manifest of your project like this:
< service android:name=".MyAlarmService" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow