Ci-dessous est mon fichier manifeste.BroadcastReceiver pour BOOT_COMPLETED est trop lent
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mccheekati.test_trail">
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<receiver
android:name="com.example.mccheekati.test_trail.yourActivityRunOnStartup"
android:enabled="true"
android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON"
/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Le récepteur de diffusion est la suivante:
public class yourActivityRunOnStartup extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
Aucune erreur. L'application s'ouvre sur le redémarrage du téléphone. Mais il faut une minute pour lancer l'application après le redémarrage. Y a-t-il quoi démarrer l'application immédiatement après le redémarrage?
Merci beaucoup. J'ai essayé le mode d'écran d'accueil et cela a fonctionné. Mais y a-t-il un moyen de naviguer entre l'écran d'accueil par défaut du téléphone et mon écran d'accueil personnalisé? –
@mCheekati: Si vous voulez dire "Puis-je lancer l'écran d'accueil par défaut de mon téléphone à partir de mon application?", La réponse est oui. Vous auriez besoin de comprendre ce qu'est cette activité, en utilisant 'PackageManager',' queryIntentActivities() ', et un' Intent' pour l'écran d'accueil ('ACTION_MAIN',' CATEGORY_HOME'). Votre activité sera dans la liste résultante, avec 1+ autres. Une fois que vous avez trouvé la bonne activité, mettez à jour votre 'ACTION_MAIN' /' CATEGORY_HOME' 'Intent' avec le' ComponentName' de l'activité spécifique pour démarrer. – CommonsWare
J'ai récupéré la liste des lanceurs disponibles sur mon téléphone. Mais impossible de définir le composant pour devenir un écran d'accueil. D'autres lanceurs sont au moins l'ouverture (Non, pas comme écran d'accueil), mais sur le clic des lanceurs par défaut du système arrête l'application malheureusement. –