2012-03-24 1 views
1

Warum wird nicht erhalten bekommen, wenn ich auf Button wid ??Android Widget: OnClickPendingIntent funktioniert nicht

Code:

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"); 
     } 

Becuase Ich brauche eine Taste, um manuelle Aktualisierung des Widgets, aber es scheint, dass Log.d("ARH","CLICKK"); nur aufgerufen wird, wenn ich das Widget hinzufügen.

Danke!

Antwort

3

Sie verwenden einen PendingIntent, um eine Aktivität aufzurufen, aber Ihre Widget-Klasse ist keine Aktivität.

Wenn Sie auf Ihr Widget aktualisieren möchten, müssen Sie getBroadcast verwenden, das eine APPWIDGET_UPDATE-Aktion sendet.

+0

Ok klingen interessant! Weißt du, wie ich OnClick von einem Widget bekommen und den Text daraus aktualisieren kann? –

+0

Sie können das Widget Ihre eigene Aktion senden lassen (keine Aktualisierungsaktion) und dann in der onReceive-Funktion abfangen. – Ran

+0

yup schon fertig aber nett trotzdem! –