Je suis en train de démarrer automatiquement mon application NightClock sur charge à l'aide BroadcastReceiver suivant mis en œuvre dans le OnPause() méthode: méthodestartActivity() de BroadcastReceiver
BroadcastReceiver test = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
Intent i = new Intent(context, NightClock.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
};
registerReceiver(test, new IntentFilter(Intent.ACTION_POWER_CONNECTED));
Le OnReceive() est déclenché lorsque le câble USB est branché, mais l'activité ne démarre pas. Cependant, le journal affiche ceci:
I/ActivityManager( 79): Starting activity: Intent { flg=0x10000000 cmp=com.meins.nightclock/.NightClock }
Des idées pour lesquelles le journal indique que l'activité est démarrée, mais rien ne se passe?
Veuillez mettre à jour votre problème avec plus de LogCat - quelques lignes avant celle-ci et une douzaine de lignes après celle-ci. En outre, pourquoi 'FLAG_ACTIVITY_NEW_TASK'? Aussi, l'activité qui a enregistré ce 'BroadcastReceiver' est toujours là quand ACTION_POWER_CONNECTED se produit? – CommonsWare
Il n'y a plus de lignes dans LogCat lors de la connexion à l'alimentation. Le 'BroadcastReceiver' est enregistré dans la même activité qu'il devrait commencer. Cette activité fonctionne toujours en arrière-plan (l'application LogCat a été mise en avant). Si cette activité est supprimée dans le gestionnaire de tâches, le 'BroadcastReceiver' ne semble pas déclencher du tout. Est-ce que cette approche d'autostart mon application mal depuis le début? – Gubbel