Android : android appwidget not updated when first time added to home screen

on Friday, September 5, 2014


I'm trying to create appwidget that displays data from server. I use volley networking framework to get data from server. When I add widget first time to home screen nothings is displayed. When I remove it and add it again data are displayed. Here is my code:



public class WeatherUpdateService extends Service {

private Weather mCurrentWeather;

@Override
@Deprecated
public void onStart(final Intent intent, final int startId) {
final RemoteViews updateViews = buildUpdate(this);
ComponentName widget = new ComponentName(this, WeatherWidgetProvider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(widget, updateViews);
}

@Override
public IBinder onBind(final Intent intent) {
return null;
}

public RemoteViews buildUpdate(final Context context) {

Weather curreWeather = getForecastData();


final StringRequest request = WeatherWebServiceImpl.getForecastRequest(apiKey, latitude, longitude, new WeatherWebServiceImpl.WeatherServiceCallbacks<String>() {

@Override
public void onServiceResponse(final String response) {
mCurrentWeather = JsonParser.parseCurrentWeather(response);
}

@Override
public void onServiceErrorResponse(final VolleyError error) {

}
});
UnwetterApplication.getRequestQueue().add(request);

RemoteViews views = null;
if (curreWeather != null) {
views = new RemoteViews(getPackageName(), R.layout.home_screen_widget);
views.setTextViewText(R.id.place, curreWeather.location.city);
} else {
views = new RemoteViews(getPackageName(), R.layout.widget_message);
views.setTextViewText(R.id.message, "XXX");
}

return views;
}
}

public class WeatherWidgetProvider extends AppWidgetProvider {


@Override
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
context.startService(new Intent(context, WeatherWidgetProvider.class));
}
}


Can somebody help me to solve this problem? Thank you for help.


0 comments:

Post a Comment