Android Home screen Widget: RemoteViews setRemoteAdapter(…) method not working on API 11+

后端 未结 3 534
悲&欢浪女
悲&欢浪女 2021-02-06 03:09

So onUpdate method calls

remoteViews.setRemoteAdapter(id, R.id.listview, intent)

in order to apply an adapter to the listview in the widget.

<
相关标签:
3条回答
  • I faced this problem some time ago. This approach with random number helped me too.

    0 讨论(0)
  • 2021-02-06 03:57

    Weird, but found a solution. Android seems to be caching the intents you use in your onUpdate method. If you resend what seems to be the same intent, it won't perform as you'd expect.

    Solution: have a static iterating integer which you include as a param in the intent extras. It solved the problem for me.

    Intent intent = new Intent(context, WidgetService.class);
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, currentWidgetId);
    intent.putExtra("random", randomNumber);
    randomNumber++;
    intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
    

    Oh, Android...

    0 讨论(0)
  • 2021-02-06 04:05

    The suggested method unfortunately didn't work for me. What worked is calling appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.list_view);

    I have a static method in my AppWidgetProvider class that I call whenever I want to update the widget data. I called this notifyAppWidgetViewDataChanged inside that method and everything worked. Now the widget updates the list data properly.

    0 讨论(0)
提交回复
热议问题