Ich habe einen Dienst erstellt, den ich regelmäßig über den AlarmManager anrufen möchte. Ich habe Code für dasselbe geschrieben, aber es ruft nicht an. Wenn ich BroadcasrReciever über AlarmManager anrufe, funktioniert es gut.Anrufdienst mit AlarmManager
Unten ist mein Code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Intent alarmIntent = new Intent(this, LocationUpdateService1.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
manager.setRepeating(AlarmManager.RTC_WAKEUP, 20000, 11000, pendingIntent);
}
Mein Service-Klasse,
public class LocationUpdateService1 extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
Toast.makeText(getApplicationContext(), "I created", Toast.LENGTH_LONG);
return null;
}
}
Meine manifiest Datei,
<service
android:name=".Services.LocationUpdateService1">
</service>
Muss ich BroadcastReceiver Klasse zu erstellen, meinen Dienst rufen ? Was ist falsch in meinem Code? und warum es nicht regelmäßig anruft?
Sie benötigen 'PendingIntent' zu bekommen mit' PendingIntent.getService() '-' nicht getBroadcast() '- wenn Sie es ein' Service' beginnen soll. Außerdem wird 'onBind()' nicht ausgelöst, es sei denn, etwas bindet den 'Dienst'. Wahrscheinlich möchten Sie stattdessen 'onCreate()' oder 'onStartCommand()'. –
Mögliches Duplikat von [Soll PendingIntent.getService() oder getBroadcast mit AlarmManager verwendet werden?] (Http://stackoverflow.com/questions/7308298/should-i-use-pendingtintent-getservice-or-getbroadcast-with-alarmmanager) –
Ich habe getBroadcast() zu getService() geändert, immer noch nicht funktioniert –