| |||||||
Das Thema "Wie starte ich einen Service aus einem anderen Paket?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Nexus One Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
| ![]() Habe ein kleines Beginner-Problem, und zwar. Habe 2 Pakete. Eines enthält eine Activity und soll den Service aus dem anderen Paket starten. com.paket1.MainActivity.java Code:
final Intent police = new Intent();
police.setComponent(new ComponentName("com.paket2","com.paket2.ServiceClass"));
startService(police); Code: <service android:name ="ServiceClass"
android:exported="true">
<intent-filter>
<action android:name="com.paket2.ServiceClass">
</action>
</intent-filter>
</service> Zitat:
| |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
probier mal <service android:name ="com.paket2.ServiceClass" android:exported="true"> <intent-filter> <action android:name="com.paket2.ServiceClass"> </action> </intent-filter> </service>
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #4 (permalink) | |
| Android Guru Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
|
Du gibst doch das allgemeine Package an für deine App, also zum Beispiel: de.sam.thesis Und alles weitere liegt dort drunter und aus dem Package und dem Namen wir das zusammengesetzt. Wenn du also jetzt als Servicenamen ".ServiceClass" angibst, dann muss die Klasse direkt unter dem Package zu finden sein: de.sam.thesis.ServiceClass Und das findet er einfach nicht. Zitat:
| |
| | |
| | #5 (permalink) |
| Android-Hilfe.de Mitglied Modell: Nexus One Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
|
Achso. Ok, in der Manifest-Deklaration habe ich das Paket angegeben. Code: <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.packet1"
android:versionCode="1"
android:versionName="1.0">
....
</manifest> Das würde ja heisst, dass ich nicht 2 Pakete innerhalb einer App haben kann? Oder kann ich im Manifest einen neuen Tag für das zweite Paket generieren? Code: <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.packet2"
android:versionCode="1"
android:versionName="1.0">
....
</manifest> Wenn ein Paket abstürzt, dass ist die App doch weg. Wie baut man denn da Redundanz und Stabilität in die App ein? |
| | |
| | #6 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
warum nicht einfach einen gemeinsamen pfad com.meineapp.pakete.paket1 com.meineapp.pakete.paket2 und im manifest dann halt com.maineapp.pakete als package name
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| Folgender Benutzer bedankt sich bei swordi für diesen Beitrag: | sem_thesis (13.06.2011) |
| | #7 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Nexus One Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
|
Muss ich dann auch explizit das Paket com.meineapp.pakete erstellen und die beiden Pakete reintun? Oder genügt die Deklaration im Manifest? Jetzt habe ich nur mal die Manifest-Deklaration umgeändert und schon bekomme ich Fehlermeldung für res.Objekte. Überall wo ich 'R.layout.nameeineslayouts' stehen habe, zeigt Eclipse einen Fehler an ![]() Zitat:
Geändert von sem_thesis (12.06.2011 um 22:10 Uhr) | |
| | |
| | #8 (permalink) |
| Android Guru Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
|
Clean
|
| | |
| Folgender Benutzer bedankt sich bei the_alien für diesen Beitrag: | sem_thesis (13.06.2011) |
| | #9 (permalink) |
| Android-Hilfe.de Mitglied Modell: Nexus One Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
| Hat nicht geholfen. Auch nicht nach Eclipse-Neustart ![]() Ok - ich habe also einfach ich den Klassen, wo der Fehler aufgetaucht ist 'import com.meineapps.*' importiert ... BINGO!!! ![]() Jetzt habe ich den Service ganz normal mit Code: Intent police = new Intent();
police.setAction("com.meineapps.packet2.ServiceClass");
this.startService(police); Jetzt möchte ich doch wissen - sorgt das wirklich für Stabilität? Wenn die App crasht, wird dann nur entweder Prozess com.meineapps.packet2 oder com.meineapps.packet1 unterbrochen oder geht das ganze Paket com.meineapps unter? Denn dann hätte die Implementation hier gar nix gebracht Geändert von sem_thesis (13.06.2011 um 09:23 Uhr) |
| | |
| | #10 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
nur weil du 2 pakete gemacht hast, hast du nicht 2 prozesse. deine app wird innerhalb eines prozesses ausgeführt.
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Wie bekomme ich aus einem zImage ein boot.img? | Bowfinger | Android OS Entwicklung / Customize | 2 | 08.06.2011 09:48 |
| Wie bekomme ich einen Musiktitel aus der oberen Homescreen Leiste? | NiciN | LG P990 Optimus Speed Forum | 14 | 04.04.2011 13:53 |
| Wie starte ich den LauncherPro? | Lexuzz | Individualisierung | 4 | 21.12.2010 12:43 |
| Wie beende ich einen Remote Service richtig? | lindijones | Android App Entwicklung | 1 | 23.04.2010 12:45 |
| SD-Kartentausch: Wie bekomm ich die Daten von der einen zur anderen | dxb | Motorola Milestone Forum | 7 | 19.12.2009 21:41 |