2017-03-26 1 views
0

Cette question suit les mêmes lignes que the one I asked for iOS et n'est pas associée à this one.Lancement d'une application Android en arrière-plan lorsqu'elle n'est pas en cours d'exécution

Je veux savoir quels sont les mécanismes que l'on peut utiliser pour lancer une application sur l'appareil Android qui a été forcé de quitter, ou qui n'a pas été démarré depuis le dernier redémarrage de l'appareil. J'imagine qu'il n'y a aucun moyen de lancer l'application au premier plan, mais il devrait y avoir un moyen de le lancer en arrière-plan. Peut-être que nous pouvons envoyer une sorte de "notification à distance silencieuse" qui va lancer notre application afin de traiter cette notification, et qui peut à son tour décider de définir une notification locale à afficher à l'utilisateur.

Je suis à la recherche d'une solution 100% fiable et documentée qui ne soit pas soumise au caprice de l'OS, mais qui lancera l'application en arrière-plan et lui permettra de faire les choses.

+0

Êtes-vous familier avec 'Service's? – nandsito

Répondre

0

Essayez ceci guide. Fondamentalement, vous ajoutez ceci à votre manifeste:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name"> 
    ... 
    <!-- 
     Because android:exported is set to "false", 
     the service is only available to this app. 
    --> 
    <service 
     android:name=".RSSPullService" 
     android:exported="false"/> 
    ... 
<application/> 

Et puis vous ajoutez ce bloc à tout ce dont vous avez besoin:

public class RSSPullService extends IntentService { 
    @Override 
    protected void onHandleIntent(Intent workIntent) { 
     // Gets data from the incoming Intent 
     String dataString = workIntent.getDataString(); 
     ... 
     // Do work here, based on the contents of dataString 
     ... 
    } 
} 

Ce guide aide aussi.

0

Vous pouvez lancer une application à partir d'un BroadcastReceiver en réponse à une grande variété d'émissions système, y compris le démarrage du périphérique, les alarmes planifiées, etc. Le composant approprié pour l'hébergement des processus d'arrière-plan est Service. Les services sont moins susceptibles d'être tués s'ils demandent un statut de premier plan, ce qui crée une notification continue (non révocable). Le principal problème est que votre BroadcastReceiver ne sera jamais appelé, sauf si l'utilisateur a lancé manuellement l'une des activités de l'application depuis son installation ou depuis sa dernière fermeture forcée.