Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Wie starte ich einen Service aus einem anderen Paket?

Das Thema "Wie starte ich einen Service aus einem anderen Paket?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 12.06.2011, 16:48   #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
Standard Wie starte ich einen Service aus einem anderen Paket?

Hallo!

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);
Eintrag im Manifest.xml:
Code:
        <service android:name ="ServiceClass"
                     android:exported="true">
            <intent-filter>
                <action android:name="com.paket2.ServiceClass">
                </action>
            </intent-filter>
        </service>
Bekomme aber trotzdem den Error:
Zitat:
W/ActivityManager( 105): Unable to start service Intent { cmp=com.paket2/.ServiceClass }: not found
Vorschläge von euch Experten?
sem_thesis ist offline   Mit Zitat antworten
Alt 12.06.2011, 17:09   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

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 )
swordi ist offline   Mit Zitat antworten
Alt 12.06.2011, 18:30   #3 (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
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

Zitat:
Zitat von swordi Beitrag anzeigen
probier mal

<service android:name ="com.paket2.ServiceClass"
android:exported="true">
<intent-filter>
<action android:name="com.paket2.ServiceClass">
</action>
</intent-filter>
</service>
Danke für deine Mühe!
Ich bekomme jedoch immer noch die gleiche Fehlermeldung
sem_thesis ist offline   Mit Zitat antworten
Alt 12.06.2011, 20:50   #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
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

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:
android:name
The name of the Service subclass that implements the service. This should be a fully qualified class name (such as, "com.example.project.RoomService"). However, as a shorthand, if the first character of the name is a period (for example, ".RoomService"), it is appended to the package name specified in the <manifest> element.
There is no default. The name must be specified.
the_alien ist offline   Mit Zitat antworten
Alt 12.06.2011, 21:55   #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
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

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>
Du meinst also, dass er jetzt jede Klasse am 'com.packet1' anhängt?
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>
Das würde mich echt erstaunen, wenn man nicht auf Pakete übergreifen kann..
Wenn ein Paket abstürzt, dass ist die App doch weg. Wie baut man denn da Redundanz und Stabilität in die App ein?
sem_thesis ist offline   Mit Zitat antworten
Alt 12.06.2011, 22:02   #6 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

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 )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
sem_thesis (13.06.2011)
Alt 12.06.2011, 22:04   #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
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

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:
R cannot be resolved to a variable

Geändert von sem_thesis (12.06.2011 um 22:10 Uhr)
sem_thesis ist offline   Mit Zitat antworten
Alt 13.06.2011, 00:28   #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
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

Clean
the_alien ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei the_alien für diesen Beitrag:
sem_thesis (13.06.2011)
Alt 13.06.2011, 08:44   #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
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

Zitat:
Zitat von the_alien Beitrag anzeigen
Clean
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);
gestartet.

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)
sem_thesis ist offline   Mit Zitat antworten
Alt 13.06.2011, 12:25   #10 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Wie starte ich einen Service aus einem anderen Paket?

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 )
swordi ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

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




Du liest gerade: "Wie starte ich einen Service aus einem anderen Paket?" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.