2014-02-13 4 views
1

onReceive()에서 클릭 된 위젯의 ID를 가져올 수 없습니다. 항상 0을 반환하는 것은 여기 내 코드입니다 :intent.getIntExtra (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);

나는 내가 그것을 작동 밤은 이유를 잘 모릅니다, 코드 형태로 Android 개발자 문서를 가지고
@Override 
    public void onReceive(Context context, Intent intent) { 

     if (intent.getAction().equals(WIDGET_BUTTON)) { 
      int widgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); 

      log("WID ID" + widgetId); 

..


답 :

내가 그리워 :

AppWidgetManager mgr = AppWidgetManager.getInstance(context); 

그럼 내 코드는 다음과 같습니다 :

@Override 
public void onReceive(Context context, Intent intent) { 

    AppWidgetManager mgr = AppWidgetManager.getInstance(context); 
    RemoteViews views = new RemoteViews(context.getPackageName(), 
      R.layout.widget_main); 




    if (intent.getAction().equals(WIDGET_BUTTON)) { 
     Bundle extras = intent.getExtras();  
     int widgetId = 0; 

     if (extras != null && extras.containsKey(AppWidgetManager.EXTRA_APPWIDGET_ID)) 
      widgetId = intent.getIntExtra(mgr.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); 
      log("1 - WID ID" + widgetId); 

답변

0

doc는 INVALID_APPWIDGET_ID의 == 0을 말한다, 그래서 당신은 EXTRA_APPWIDGET_ID 추가하지 않아도 텐트를 수신하고 있습니다.

의도를 만들 때 추가 할 부분이 추가 되었습니까?