为什么setImageViewResource无法正常工作?

时间:2020-03-19 15:28:09

标签: android android-studio android-widget

我试图每5秒从站点获取一个请求(该请求已在工作),但是如果我尝试调用setImageViewResource函数,则代码会跳出if子句,并且不会更改视图。在以前的尝试中,它可以正常工作(但默认延迟时间为30分钟)。如何在if子句中更改Image? 代码:

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

    }
}
``

0 个答案:

没有答案