小部件 Onclick 不起作用
Posted
技术标签:
【中文标题】小部件 Onclick 不起作用【英文标题】:Widget Onclick is not working 【发布时间】:2014-11-02 11:22:46 【问题描述】:我正在尝试创建一个每半小时更新一次的应用程序。目前正在尝试在小部件点击时启动更多活动,但它不起作用
以下是我的 provider.java 类
public class Provider extends AppWidgetProvider
public static void updateAppWidget(Context paramContext,
AppWidgetManager localAppWidgetManager, int i, String string)
ComponentName thiswidget = new ComponentName(paramContext,
Provider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(paramContext);
int[] allWidgetIds = manager.getAppWidgetIds(thiswidget);
for (int widgetId : allWidgetIds)
Intent in = new Intent(paramContext, display_widget.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
paramContext, 0, in, 0);
RemoteViews remoteViews = new RemoteViews(
paramContext.getPackageName(), R.layout.main);
remoteViews.setOnClickPendingIntent(R.id.Main, pendingIntent);
localAppWidgetManager.updateAppWidget(widgetId, remoteViews);
public void onUpdate(Context paramContext,
AppWidgetManager paramAppWidgetManager, int[] paramArrayOfInt)
int i = paramArrayOfInt.length;
for (int j = 0;; j++)
if (j >= i)
return;
int k = paramArrayOfInt[j];
updateAppWidget(paramContext, paramAppWidgetManager, k,
"soome string");
提前谢谢.. :)
【问题讨论】:
使用PendingIntent.getActivity(paramContext, 0, in, 0);
【参考方案1】:
尝试使用 PendingIntent.FLAG_UPDATE_CURRENT
Intent intent = new Intent(paramContext, display_widget.class);
intent.setAction(ACTION_BUTTON);
PendingIntent pendingIntent = PendingIntent.getBroadcast(paramContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.widget_button, pendingIntent);
【讨论】:
以上是关于小部件 Onclick 不起作用的主要内容,如果未能解决你的问题,请参考以下文章