我的小部件包含一些文本视图和一个按钮。 按下按钮会调用填充文本视图的Web服务。
这样可以正常工作,但按钮只执行一次,然后在第一次按下后不执行任何操作。 logcat中没有错误。
我删除了webservice方法,使其更易于阅读。下面的代码仍然显示相同的问题:按下按钮仅触发一次。
有人能帮忙吗?
编辑:我认为问题可能是我没有广播接收器?import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.widget.RemoteViews;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DashboardWidget extends AppWidgetProvider {
static String response = "";
static clsDashboardResponse result;
static Context cont;
static AppWidgetManager appWidgMan;
static int appWidgID = 0;
static String count = "";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
updateAppWidget(context, appWidgetManager, appWidgetIds[i]);
}
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.dashboard_widget);
remoteViews.setOnClickPendingIntent(R.id.widget_button, buildButtonPendingIntent(context));
}
public static PendingIntent buildButtonPendingIntent(Context context) {
Intent intent = new Intent();
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
@Override
public void onEnabled(Context context) {
}
@Override
public void onDisabled(Context context) {
}
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.dashboard_widget);
cont = context;
appWidgMan = appWidgetManager;
appWidgID = appWidgetId;
count = count + "a";
views.setTextViewText(R.id.txvWidgetSales, count);
Calendar cal = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("d MMM yyyy 'at' h:mm:ss a");
views.setTextViewText(R.id.txvWidgetDate, format.format(cal.getTime()));
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}