2011-08-24 77 views
3

我有一个小部件,它基本上是一个大按钮(在背景中有一些图像)。如果主屏幕上只有一个小部件(或者电话重启后有多个小部件),按钮可以正常工作,但如果我尝试添加另一个小部件,该按钮会突然停止反应(在第二个小部件上)。添加多个小部件时,Android小部件按钮不可点击

现在几个月一直在努力。希望你能够提供帮助。

public class StatsWidget extends AppWidgetProvider { 
    public static String ACTIONWIDGETCLICK = "MyWidgetClick"; 
    @Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
     Intent intentt = new Intent(context, StatsService.class); 
     context.startService(intentt); 
     final int N = appWidgetIds.length; 
     for (int i=0; i<N; i++) { 
      int appWidgetId = appWidgetIds[i]; 
      RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main); 
      Intent intent = new Intent(context, StatsWidgetActivity.class); 
      intent.setAction(ACTIONWIDGETCLICK); 
      intent.putExtra("widgetId", appWidgetId); 
      PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
      views.setOnClickPendingIntent(R.id.widget_button, pendingIntent); 
      appWidgetManager.updateAppWidget(appWidgetId, views); 
     } 
    } 
} 

回答

0

我在你的代码中看到的唯一错误是你忘了添加

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

这必须使用来自服务/ broadcastreciever /等开始的活动时。否则,你是否从应用程序的其他地方更新小部件?我最近有悬而未决的意图问题unresistering本身,因为我从我的应用程序内更新窗口小部件并没有添加

views.setOnClickPendingIntent(R.id.widget_button, pendingIntent); 

的更新代码。

希望这会有所帮助

相关问题