2011-08-24 60 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); 

的更新代碼。

希望這會有所幫助

相關問題