wake-up-neo.com

hintergrund-Service nach der User-Exit-App am Leben erhalten

Ich versuche, einen Dienst zu erstellen, der Hintergrundjobs für mich ausführt, selbst nachdem der Benutzer die App über das Menü für laufende Prozesse geschlossen hat (indem der Prozess aus dem Bildschirm verschoben wird).

Ich habe versucht, einen Dienst in einem anderen Prozess zu erstellen, indem ich ihn folgendermaßen deklariere:

  <service
        Android:name=".service.Service"
        Android:enabled="true"
        Android:icon="@drawable/ic_launcher"
        Android:process=":my_process" >
  </service>

und onStartCommand () lautet:

    @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}
12
Nativ

Gemäß der Android-Dokumentation können Sie dieses Verhalten erreichen, indem Sie das Attribut verwenden:

 Android:isolatedProcess="true"

Ich weiß übrigens, dass es die Frage nicht beantwortet, aber es könnte auch einigen Leuten helfen - in letzter Zeit habe ich herausgefunden, dass eine großartige Drittanbieter-Lib, die von Evernote-Entwicklern erstellt wurde. Sein Name ist Android-Job und es ist das Ziel, Jobs zu erstellen, die auf verschiedenen Prozessen ablaufen und auch nach einem Neustart des Geräts wieder aktiv werden können. Das ist erstaunlich.

5
Nativ

Tatsächlich gibt es verschiedene Arten von Diensten, die Sie implementieren können. Verwenden Sie einen Dienst anstelle von IntentService. Dort müssen Sie sich START_STICKY, START_NOT_STICKY und START_REDELIVER_INTENT anschauen. Sie können Ihren Dienst auch dann im Hintergrund laufen lassen, wenn Ihre Aktivität stirbt. Android-Dienste Siehe auch AIDL-Dienste

Hierfür können Sie die Klasse Handler und Runnable verwenden

   @Override
    public void onCreate()
    {

        Toast.makeText(context, "SMS SERVICE START", Toast.LENGTH_SHORT).show();


        handler=new Handler();
        runnable=new Runnable() {
            @Override
            public void run()
            {

                    TASK();
                    handler.postDelayed(runnable,180000);
// 3min delay
            }
        };

        handler.postDelayed(runnable,180000);
        super.onCreate();
    }

Diese Aufgabe läuft kontinuierlich 3min 

public void TASK()
{
     //your task 

}
0