0

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?

+1

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()'. –

+0

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) –

+0

Ich habe getBroadcast() zu getService() geändert, immer noch nicht funktioniert –

Antwort

1

Stellen Sie sicher, PendingIntent.getBroadcast nicht Gebrauch machen, würde es nicht funktionieren. Mit getService() statt, wie folgt aus:

PendingIntent pendingIntent = PendingIntent.getService(this, 0, alarmIntent, 0); 
+0

Nicht in der Lage, Parameter zu verstehen. Wenn möglich, transformiere meinen Code mit dem richtigen Code. –

+0

@KevalPatel das ist einfach, aktualisieren Sie einfach die Antwort :) – alway5dotcom