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?
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);
}
}
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>
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>
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.