2010-08-15 7 views
0

J'ai un appWidget simple qui affiche une image. L'image est sélectionnée dans l'activité de configuration et le widget est mis à jour via la vue de suppression. Cela se fait sur un bouton poussoir d'exécuter le code ci-dessous:Mise en page de mise en page de l'application après le redémarrage de l'appareil

Intent intent = new Intent(context, KidDialog.class); 
intent.setData(selectedImage); 

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
widgetView.setOnClickPendingIntent(R.id.centerBrd, pendingIntent); 

widgetView.setImageViewUri(R.id.widImg, selectedImage); 

appWidgetManager.updateAppWidget(appWidgetId, widgetView); 

Intent resultValue = new Intent(); 
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 
setResult(RESULT_OK, resultValue); 
finish();` 

Comme vous pouvez le voir, il voit aussi une PendingIntent pour la onClickListener de l'image. Je ne pense pas que cela soit pertinent ici. Quoi qu'il en soit, ce travail est génial. Le widget fait exactement ce que je veux. Jusqu'à ce que je redémarre l'appareil.

Lorsque je redémarre le widget se charge avec la vue par défaut du fichier XML dans l'apk. Il ne conserve pas la mise à jour de l'image de la configuration initiale. Mes questions sont comment puis-je récupérer le widget après un redémarrage avec l'ensemble de vues mis à jour au cours de l'activité de configuration? Je devrai également réinitialiser l'onClick Pendingintent, mais je le conserverai pour plus tard. Je m'attends à ce qu'ils soient liés de toute façon. Donc je n'ai plus d'idées.

Répondre

0

Je ne suis pas sûr de la meilleure réponse, mais lorsque vous recevez l'intention à partir du bouton, vous pouvez enregistrer le nom de l'image dans une référence partagée.

Et lorsque vous créez le widget, vérifiez la valeur de la sharedpreference et l'utiliser pour restaurer l'image désirée ..

+0

j'avais essayé. Le problème est que l'appwidget n'a pas accès à la préférence de partage. Oui, m'a semblé étrange. Je semble être l'une de ces structures de conception bizarres qui ont manqué. Pour une raison quelconque, il n'hérite pas d'une structure qui a accès. Un autre que j'ai trouvé est que vous ne pouvez pas utiliser Extras avec un pendingintent. Les deux sont une douleur. Jusqu'à présent, la meilleure option que j'ai trouvée est de construire dans ma propre structure de préférence dans un fichier externe ou une base de données interne SQL. Volumineux, mais le seul moyen que j'ai trouvé pour partager des informations entre un appwidget et une activité. – PhilD41