Hi to all !
I have a widget which becomes not clickable when screen orientation
changes. After a lot of research on the net, I see that this problem occurs
when the submitted RemoteViews is partially updated.
Problem is, I always fully update my RemoteViews. In fact, I have only 1
call to AppWidgetManager.updateAppWidget in my whole application, and it's
in the AppWidgetProvider.onUpdate() method. As I posted its code at the end
of the message, you can see that each RemoteViews sent contains a "on click
pending intent", but I seems to disappear when the widget is re-created
after screen orientation changes.
As the onUpdate method is not called on this event, I cannot send a new
RemoteViews with this Intent. I tried to call onUpdate from the onReceive
method, which worked. Still, I don't like this dirty solution as I cannot
filter on the action intended when triggering onReceive, because there is
no action such as "on screen orientation changes", and I end up calling
onUpdate on each received notification :s
Could anyone please help me on this one ?
Thanks in advance !
As promised, my onUpdate() method :
@Override
public void onUpdate(Context context, AppWidgetManager
appWidgetManager, int[] appWidgetIds) {
final RemoteViews remoteViews = new
RemoteViews(context.getPackageName(), R.layout.widget);
// Mise à jour de l'image dans les widgets
updateClockinImage(context,appWidgetIds, getCheckingCount(context));
// Build the intent to call the service
final Intent intent = new Intent(context.getApplicationContext(),
AddCheckingService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
// Pour réagir à un clic il faut utiliser une pending intent car le
onClickListener
// est exécuté par l'application Home
final PendingIntent pendingIntent =
PendingIntent.getService(context.getApplicationContext(), 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.btn_checkin, pendingIntent);
// Mise à jour des widgets avec le nouvel intent
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en