Я пытаюсь получать запрос от сайта каждые 5 секунд (запрос уже работает), но если я пытаюсь вызвать функцию setImageViewResource, код выпрыгивает из предложения if и не меняет представление. В предыдущей попытке это работало (но с задержкой по умолчанию 30 минут). Как я могу изменить изображение в предложении if? (Извините за мой плохой английский sh) Код:
package com.example.bytewerkstatus;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.util.Log;
import android.widget.RemoteViews;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import android.os.Handler;
/**
* Implementation of App Widget functionality.
*/
public class StatusWidget<appWidgetId> extends AppWidgetProvider {
static public void updateAppWidget(final Context context, final AppWidgetManager appWidgetManager,
final int appWidgetId) {
final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.status_widget);
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(context);
String url ="http://stats.bytewerk.org/status.txt";
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
public void onResponse(String response) {
if (response.equals("open")) {
views.setImageViewResource(R.id.status_view, R.drawable.bytewerk_online);
} else if (response.equals("closed")) {
views.setImageViewResource(R.id.status_view, R.drawable.bytewerk_offline);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
views.setImageViewResource(R.id.status_view, R.drawable.bytewerk_nointernet);
}
});
queue.add(stringRequest);
}
@Override
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (final int appWidgetId : appWidgetIds) {
//for (int i = 0; i <= 6; i++) {
Runnable runnable = new Runnable() {
@Override
public void run() {
Handler handler = new Handler();
updateAppWidget(context, appWidgetManager, appWidgetId);
handler.postDelayed(this, 5000);
}
};
runnable.run();
}
}
@Override
public void onEnabled(Context context) {
// Enter relevant functionality for when the first widget is created
}
@Override
public void onDisabled(Context context) {
// Enter relevant functionality for when the last widget is disabled
}
}
``