Garder le service en arrière-plan actif après l'application de sortie de l'utilisateur

J'essaie de créer un service qui me fera des travaux d'arrière-plan même après que l'utilisateur ferme l'application à partir du menu processus en cours (en décalant le processus à partir de l'écran).

Ce que j'ai essayé de faire, c'est de créer un service dans un processus différent en le déclarant comme ceci:

  • Capturer l'exécuteur testamentaire pour le thread actuel
  • Comment arrêter l'exécution des services?
  • Est-ce que cet avertissement est causé par mon application? - "Les intentions implicites avec startService ne sont pas sécurisées"
  • Ouverture du fichier pdf du serveur à l'aide de l'intention Android
  • Attraper sur glipe pour renvoyer l'événement
  • Android: crée une liste d'amis facebook
  • <service android:name=".service.Service" android:enabled="true" android:icon="@drawable/ic_launcher" android:process=":my_process" > </service> 

    Et onStartCommand () est:

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

    5 Solutions collect form web for “Garder le service en arrière-plan actif après l'application de sortie de l'utilisateur”

    Selon la documentation du service, vous pouvez réaliser ce comportement en utilisant l'attribut:

      android:isolatedProcess="true" 

    En passant, je sais que cela ne répond pas à la question, mais cela pourrait aider certaines personnes aussi – dernièrement, j'ai découvert une excellente libération de tiers que les développeurs Evernote ont créée. Son nom est JobManager et son objectif est de créer des emplois qui fonctionnent sur différents processus et de pouvoir fonctionner à nouveau même après le redémarrage d'un périphérique. incroyable.

    En fait, il existe différents types de services que vous pouvez implémenter. Utilisez un service au lieu de IntentService . Vous devez regarder START_STICKY , START_NOT_STICKY et START_REDELIVER_INTENT vous pouvez garder votre service en cours d'exécution même si votre activité est décédée. Les services Android examinent également les services AIDL

    Une façon de faire cela. Supposons que vous ayez une classe de service appelée «DoSomething». Dans Android Manifest Declare:

     <service android:name = ".DoSomething"></service> 

    Dans la classe de service:

     Handler handler = new Handler(); Runnable runnable = new Runnable(){ @Override public void run() { // TODO Auto-generated method stub YourMethod(); handler.postDelayed(this, 1000); // 1000 - Milliseconds } }; 

    Et enfin:

     @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub handler.postDelayed(runnable, 1000); return START_STICKY; } 

    De votre activité:

     Intent intent = new Intent(this, DoSomething.class); startService(intent); 

    J'espère que cela vous aidera.

    Pour cela, vous pouvez utiliser la classe Handler et Runnable

      @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(); } 

    Cette tâche fonctionne en continu 3min

     public void TASK() { //your task } 

    Les services ont été conçus pour fonctionner en arrière-plan, pas besoin d'un processus différent.

    À partir de la documentation sur les services:

    Une fois commencé, un service peut s'exécuter en arrière-plan indéfiniment, même si le composant qui l'a démarré, est détruit.

    Le service, cependant, devrait s'arrêter, quand son travail est terminé. IntentService est le moyen le plus simple de commencer à mettre en œuvre un service.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.