Klick auf Widget -> Activity starten

  • Antworten:5
Alex heinz
  • Forum-Beiträge: 20

21.09.2011, 23:07:21 via Website

Hallo,
Ich habe ein kleines Widget gemacht, das nur aus einer Textbox besteht. Das funktioniert auch so ganz gut, nun möchte ich auf das Widget
klicken können und dann eine Activity starten, leider bekomme ich es nicht zum laufen, verwende3 diesen Code in der WidgetKlasse, im onUpdate()

Intent intent = new Intent(context, test.class);
intent.setAction("MEINE_ACTION");
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

RemoteViews view=new RemoteViews(context.getPackageName(),R.layout.main);
view.setOnClickPendingIntent(R.id.textbox, pendingIntent);

und in der selben klasse:
@Override
public void onReceive(Context context, Intent intent) {
...
if (intent.getAction().equals("MY_ACTION")) {
Log.e("A","onReceive" );
}


Aber ich sehe einfach kein Log-Ausgabe

Jemand einen Idee, warum das nicht klappt? Oder ein funktionierendes Beispielprojekt?

Gruss Alex

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

21.09.2011, 23:12:57 via App

Hm,
vielleicht, weil deine WidgetKlasse, aus der der Code ist, nicht den PendingIntent an "test.class" empfängt?
Lg Ansgar

Antworten
Daniel online
  • Forum-Beiträge: 282

23.09.2011, 11:58:26 via Website

du musst in der onCreate Methode einen BroadcastReceiver registrieren.

Antworten
Alex heinz
  • Forum-Beiträge: 20

25.09.2011, 23:11:56 via Website

Hi,
Also den Broadcast sende ich, das sehe ich im log.
Jetzt habe ich im Manifest:

<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="de.foo.action.MyAction" />
</intent-filter>


und im Code habe ich:

@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
Log.e("A","onReceive1:"+intent.getAction() );


if (intent.getAction().equals("de.foo.action.MyAction")) {
Log.e("A","onReceive2:############################" );
}

}


Das APPWIDGET_UPDATE wird empfangen und onReceive aufgerufen, aber de.foo.action.MyAction wird nicht empfangen.
Gruss Alex

Antworten
Daniel online
  • Forum-Beiträge: 282

26.09.2011, 13:34:22 via Website

das im Manifest zu machen hat bei mir auch nie geklappt.. versuchs mal in der onCreateMethode zu registrieren.

Antworten
Alex heinz
  • Forum-Beiträge: 20

27.09.2011, 23:27:01 via Website

Ich habe ja ein Widget, also von AppWidgetProvider abgeleitet, da gibt es onCreate ja nicht,
und die registerReceiver() gibts leider auch nicht, wie kann man denn dann einen Receiver registrieren?

gruss Alex

Antworten