2012-07-03 2 views
2

내가 무엇을해도 위젯의 버튼을 클릭하여 아무 것도 실행할 수 없습니다. 여기에 내가 쓴 몇 가지 코드입니다, 아무도 왜 onReceive 위젯 버튼을 클릭 할 때 호출되지 않습니다 말해 줄래?위젯 버튼에서 어떻게 트리거합니까?

또한 버튼 클릭시 함수를 실행하고 싶습니다. 아래 코드를 기반으로 올바른 아이디어가 있습니까?

public class WidgetProvider extends AppWidgetProvider { 

    @Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 

     Intent intent = new Intent(context, WidgetProvider.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 

     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 
     views.setOnClickPendingIntent(R.id.toggleButton, pendingIntent); 
     appWidgetManager.updateAppWidget(appWidgetIds[0], views); 

    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // why don't i get here with the button click? 
     Log.e("!", intent.getAction()); 
    } 
} 

답변

2

먼저 onReceive의 수퍼 메소드를 호출 해보십시오.

@Override 
public void onReceive(Context context, Intent intent) { 
    super.onReceive(context, intent); 
    // why don't i get here with the button click? 
    Log.e("!", intent.getAction()); 
} 

나에게 잘 해줬습니다!

+0

확실히 super.onReceive를 호출하십시오. 귀하의 위젯은 그것 없이는 작동하지 않을 것입니다. – Ran

+0

굉장해! 고마워요. – zoran119

관련 문제