2012-03-24 72 views
1

为什么不接受调用当我点击Button wid?Android小工具:OnClickPendingIntent不会工作

代码:

public class Widget extends AppWidgetProvider { 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
     for (int i = 0; i < appWidgetIds.length; i++) { 
      int appWidgetId = appWidgetIds[i]; 

      Intent intent = new Intent(context, Widget.class); 
      PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

      RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 
      views.setOnClickPendingIntent(R.id.wid, pendingIntent); 
      appWidgetManager.updateAppWidget(appWidgetId, views); 
     } 
    } 

    @Override 
     public void onReceive(Context context, Intent intent) { 
      super.onReceive(context, intent); 
      Log.d("ARH","CLICKK"); 
     } 

监守我需要一个按钮来手动刷新小部件,但似乎只有Log.d("ARH","CLICKK");被调用时,我加入了Widget。

谢谢!

回答

3

您使用PendingIntent调用Activity,但您的Widget类不是活动。

如果您想更新到您的小部件,那么您需要使用发送APPWIDGET_UPDATE操作的getBroadcast。

+0

好听的有趣!你知道我如何从一个小部件获得OnClick并更新文本? – 2012-03-24 16:54:16

+0

您可以让小部件发送您自己的操作(不是更新操作),然后在onReceive函数中捕获它。 – Ran 2012-03-26 08:05:33

+0

已经完成,但不错! – 2012-03-26 12:44:59