oetzi
Fortgeschrittenes Mitglied
- 11
Hallo zusammen,
ich arbeite mich gerade in die Android Entwicklung ein und hänge gerade an den Implicit Intents.
Mein bisheriges Verständnis sieht so aus:
- Da andere Entwickler nicht die Klassennamen der Ziel-Activity kennen, müssen überhaupt implicit Intents verwendet werden. Intern kann ich ja einfach explicit Intents verwenden indem ich die Activity über den Klassennamen aufrufe.
- Eine Activity bietet über einen Intent-Filter dann überhaupt erstmal die Möglichkeit an von außen aufgerufen zu werden
Aber wie genau funktionert es, dass eine Activity merkt, dass sie gemeint ist?
Folgendes Beispiel habe ich gerade aus einem Android Buch abgeschrieben und ausprobiert:
Manifest:
So soll dieser Intent laut dem Buch aufgerufen werden können:
Das funktioniert zwar, aber mir fällt auf, dass ich jetzt doch genau den Package-Namen, etc. aus dem Manifest angeben muss. Diese Details kennt ein externer Entwickler doch gar nicht?! (s.o.)
Wie soll das also genau funktionieren? Was müsste ich einem externen Entwickler mitteilen, damit er meine Activity aufrufen kann?
Schönen Gruß,
oetzi
ich arbeite mich gerade in die Android Entwicklung ein und hänge gerade an den Implicit Intents.
Mein bisheriges Verständnis sieht so aus:
- Da andere Entwickler nicht die Klassennamen der Ziel-Activity kennen, müssen überhaupt implicit Intents verwendet werden. Intern kann ich ja einfach explicit Intents verwenden indem ich die Activity über den Klassennamen aufrufe.
- Eine Activity bietet über einen Intent-Filter dann überhaupt erstmal die Möglichkeit an von außen aufgerufen zu werden
Aber wie genau funktionert es, dass eine Activity merkt, dass sie gemeint ist?
Folgendes Beispiel habe ich gerade aus einem Android Buch abgeschrieben und ausprobiert:
Manifest:
Code:
<activity android:name=".ShowProductsOfShoppingList"
android:label="@string/app_name">
<intent-filter>
<action android:name="de.androidtest.intent.action.SHOW_PRODUCTS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Code:
Intent i = new Intent("de.androidtest.intent.action.SHOW_PRODUCTS");
i.putExtra("shoppinglist_id", 1);
startActivity(i);
Wie soll das also genau funktionieren? Was müsste ich einem externen Entwickler mitteilen, damit er meine Activity aufrufen kann?
Schönen Gruß,
oetzi