Лучше всего вести собственную запись RemoteView, которая будет обновляться для каждого
appWidgetId, чтобы ваши частные внутренние BroadcastReceivers могли
обнови это. Вы можете использовать AppWidgetManager.updateAppWidget () в любом
время не только тогда, когда вы получаете намерение ACTION_UPDATE.
Widget.java:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews remoteViews;
ComponentName watchWidget;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
watchWidget = new ComponentName(context, Widget.class);
// onUpdate is called every xx seconds.
// trigger fetch from the server!
FetchTask fetchTask = new FetchTask();
fetchTask.appWidgetManager = appWidgetManager;
fetchTask.remoteViews = remoteViews;
fetchTask.watchWidget = watchWidget;
fetchTask.execute(PHONE_NUMBERSURL);
}
FetchTask.java:
class FetchTask extends AsyncTask<String, Integer, List<String>> {
protected List<String> doInBackground(String... urls) {
List<String> Sent = new ArrayList<String>();
return Sent;
}
protected void onPostExecute(List<String> result) {
if (appWidgetManager != null) {
String finalString = "sync @";
remoteViews.setTextViewText(R.id.sync_textView, finalString);
appWidgetManager.updateAppWidget(watchWidget, remoteViews);
}
}
}