2011-04-25 4 views
1

Je souhaite que mon application affiche un écran de connexion chaque fois qu'elle est ouverte. Avec android:clearTaskOnLaunch="true" tout fonctionne bien. Mais il y a un bug qui se produit seulement si le téléphone a été éteint et l'application a été démarrée avec le widget.Android AppWidget + android: clearTaskOnLaunch = "true"

Intent intent = new Intent(context, StartActivity.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
[....] 
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_onebyone) 
views.setOnClickPendingIntent(R.id.widget, pendingIntent); 

Ce code devrait démarrer ma vie active. Au premier départ est fait. Mais mettre fin à l'application avec HOME et la redémarrer avec le widget fait que mon application ne démarre pas avec ma startactivity mais avec une autre activité de mon application sans afficher l'écran d'accueil. Que puis-je faire pour le réparer. J'ai essayé

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 

Mais cela ne fonctionne pas. Tout ce que je veux, c'est (re) démarrer l'Init-Start comme dans startActivity(..) mais je n'ai trouvé aucune option pour donner à mon Widget un OnClickListener qui démarre une activité "normale".

Meilleures salutations,

Jusqu'à

Répondre

1

Avez-vous essayé d'ajouter le drapeau à l'intention:

Intent intent = new Intent(context, StartActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
[....] 
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_onebyone) 
views.setOnClickPendingIntent(R.id.widget, pendingIntent); 

API Intention

setFlags(int)

FLAG_ACTIVITY_CLEAR_TASK

+1

Merci, en raison de l'API Lvl 7, j'ai utilisé 'Intent.FLAG_ACTIVITY_CLEAR_TOP' mais cela semble fonctionner correctement. – Till

Questions connexes