Comment démarrer / lancer l'application au démarrage Android

Je voudrais lancer mon application quand ma tablette commence, de sorte que la principale activité de mon application est la première chose que les utilisateurs voient lorsqu'ils démarrer la tablette.
J'ai lu à propos de LauncherActivity mais je ne comprends pas comment l'utiliser.
Quelqu'un peut m'aider avec des suggestions, des liens ou des tutoriels pour cela?
LauncherActivity est-il le meilleur moyen ou Existe-t-il des alternatives?

35
demandé sur Marco Gallella 2012-05-03 13:22:15

4 réponses

Ces lignes de code peuvent être utiles pour vous...

Etape 1: définissez l'autorisation dans AndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Etape 2: Ajouter ce filtre est l'intention dans le récepteur,

<receiver android:name=".BootReciever">
    <intent-filter >
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

Etape 3: Vous pouvez maintenant démarrer la première activité de votre application à partir de la méthode Onreceive de la classe Receiver..

public class BootReciever extends BroadcastReceiver
{

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Intent myIntent = new Intent(context, Tabs.class);
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(myIntent);
}

}
71
répondu vishesh chandra 2012-07-02 15:34:29

Si vous voulez démarrer l'application au démarrage des tablettes, vous devez écouter L'action BOOT_COMPLETED et y réagir. BOOT_COMPLETED est une Action de diffusion qui est diffusée une fois, après que le système a terminé le démarrage. Vous pouvez écouter cette action en créant un BroadcastReceiver qui démarre ensuite votre activité de lancement lorsqu'elle reçoit une intention avec L'action BOOT_COMPLETED.

Ajoutez cette autorisation à votre manifeste:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Créez un BroadcastReceiver personnalisé dans votre projet:

public class MyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
            Intent i = new Intent(context, MyActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
} 

Modifiez ensuite votre fichier manifeste en ajoutant le BroadCastReceiver au Manifeste:

<receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
11
répondu Gunnar Karlsson 2012-05-03 09:58:34

La réponse de @ vishesh chandra est correcte. Mais sur certains appareils ne fonctionne pas car l'application a été installée sur le stockage externe par défaut. Veuillez vous assurer que vous spécifiez

android:installLocation="internalOnly"

Sinon, vous ne recevrez aucune action de démarrage complète si l'application est installée sur la carte SD. Ajoutez ceci dans la balise d'application dans le manifeste.fichier xml et cela fonctionnera.

Utilisation:

<application
        android:name=".Data.ApplicationData"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:installLocation="internalOnly"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
        <!--activities, services...-->
</application>
3
répondu Lazar Pešić 2018-08-20 09:37:39

Je voudrais ajouter un point dans cette question à laquelle j'ai été confronté pendant quelques jours. J'ai essayé toutes les réponses mais celles-ci ne fonctionnaient pas pour moi. Si vous utilisez la version Android 5.1, veuillez modifier ces paramètres.

Si vous utilisez la version Android 5.1, vous devez désactiver (restreindre au lancement) à partir des paramètres de l'application.

Paramètres > Application > votre application > restreindre au lancement (désélectionner)

Veuillez voir l'image.

Image

1
répondu Manish Yadav 2017-08-30 06:50:12