1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Mehrere Services

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von joschika77, 03.09.2009.

  1. joschika77, 03.09.2009 #1
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hallo, mein Problem ist das ich 2 Services im Hintergrund laufen lassen möchte und anscheinend nur einen kann, da er abschmiert wenn die Activity im Hintergrund ist. Das tut er nur sobald ich den zweiten starte. Kommentiere ich den zweiten aus läufts einwandfrei. Der zweite Service macht erstmal nichts um mögliche Fehler auszuschließen, also es ist nur das Grundgerüst eines Services. Meine Frage ist, kann eine Anwendung nur ein Service verwalten oder wie sieht das aus? Zu der Exception die dort kommt kann ich nichts sagen, da es auf dem Emulator nicht passiert, traurig aber wahr. Ich hoffe es kann mir jemand was zu Services sagen?

    MfG
     
  2. miracle2k, 03.09.2009 #2
    miracle2k

    miracle2k Android-Hilfe.de Mitglied

    Beiträge:
    89
    Erhaltene Danke:
    15
    Registriert seit:
    03.07.2009
    Du kannst die Exception doch dennoch abfragen? Gerät mit dem PC vebinden, sollte ganz normal in Eclipse angezeigt werden als Gerät, und logcat dir die Infos geben.
     
  3. joschika77, 03.09.2009 #3
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    hmmm wie das? Das Gerät ist verbunden aber es springt immer der Emulator an. Muß ich noch Einstellungen machen?

    MfG
     
  4. swordi, 03.09.2009 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    eclipse hat probleme, wenn man das gerät im nachhineine einsteckt.

    schließ mal eclipse. steck das händy an und starte eclipse neu. dann müsste es eigenlich gehn
     
  5. Maniac, 03.09.2009 #5
    Maniac

    Maniac Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    48
    Registriert seit:
    08.07.2009
    Vor allem aber muss Dein Handy vom adb erkannt werden und im Handy die Option "USB-Debugging" (unter Einstellungen -> Anwendungen) aktiviert sein.

    Soweit ich das verstehe und weiß, dürfte eigentlich nichts dagegen sprechen, dass beliebig viele Services gestartet werden... es sei denn, sie schlucken zuviel Speicher oder sowas.

    Ich würde aber eher auf was ganz banales tippen, wie nen NullPointer oder sowas...

    Wie steuerst / startest Du die Services denn?
     
  6. swordi, 03.09.2009 #6
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ja mit einer exception meldung ist das problem wahrscheinlich in 1 min gelöst ;)
     
  7. joschika77, 03.09.2009 #7
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Also USB-Debugging ist/war eingestellt. Woran erkenne ich das das Gerät erkannt wurde? Wenn ich starte geht immer der Emulator auf.
     
  8. Maniac, 03.09.2009 #8
    Maniac

    Maniac Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    48
    Registriert seit:
    08.07.2009
    Gib mal in der Konsole (aufm PC)
    adb devices
    ein. Da müsste dann Dein Handy angezeigt werden. Und in der DDMS Ansicht von Eclipse müsste es auch zu sehen sein.
     
  9. Shinigami, 03.09.2009 #9
    Shinigami

    Shinigami Fortgeschrittenes Mitglied

    Beiträge:
    436
    Erhaltene Danke:
    69
    Registriert seit:
    08.04.2009
    Hallo.

    1.) Im Geräte-Manager muss dein Handy als ADB Interface auftauchen (nicht die Daten freigeben nachdem Du das USB-Kabel eingesteckt hast)

    2.) mit dem Befehl adb devices in der Konsole solltest Du Dein Gerät auch in der Liste sehen - da steht dann nen recht kryptischer Code wie HT1233KV11343 für Dein Gerät (die adb.exe liegt im SDK-Verzeichnis unter Tools)

    Gruß
     
  10. joschika77, 03.09.2009 #10
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
  11. Maniac, 03.09.2009 #11
    Maniac

    Maniac Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    48
    Registriert seit:
    08.07.2009
    Doch, kommt auf das Gerät und dessen Firmware an... hast Du ne root- und debuggable Firmware, brauchst Du nichts weiter zu tun.

    Wenn Du z.B. das Galaxy ohne root Firmware hast, musst Du im Manifest von Deinem Programm debuggable auf true stellen.

    Dann eigentlich ganz normal starten wie sonst im Emu.
     
  12. joschika77, 03.09.2009 #12
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Oh ja das klappt. Sehr gut. Thx a lot. Endlich vernünftig arbeiten. Ich habe mich mit der Konsole zum Gerät verbunden und würde gern auf die DB zugreifen. Er sagt immer Permission denied. Gibt es da ne Einstellung oder wie siehts aus?
     
  13. Maniac, 03.09.2009 #13
    Maniac

    Maniac Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    48
    Registriert seit:
    08.07.2009
    Hängt auch von root ab... wenn Du in Dein Verzeichnis unter /data kommst, müsstest Du die zumindest raus kopieren können und dann aufm Rechner anschauen oder so.
     
  14. swordi, 03.09.2009 #14
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ohne root geht da gar nichts
     
  15. joschika77, 04.09.2009 #15
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    So habe jetzt die Exception...ist tatsächlich ne NullPointer :D
    Weiß nur nicht warum. In dem Service läuft ein Thread der Daten versendet über Socket.

    Code:
    09-04 10:00:41.980: ERROR/AndroidRuntime(398): Uncaught handler: thread main exiting due to uncaught exception
    09-04 10:00:42.080: ERROR/AndroidRuntime(398): java.lang.NullPointerException
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at com.logbook.EGpsService$MyLocationListener.onLocationChanged(EGpsService.java:147)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:181)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:114)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:130)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at android.os.Handler.dispatchMessage(Handler.java:99)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at android.os.Looper.loop(Looper.java:123)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at android.app.ActivityThread.main(ActivityThread.java:3948)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at java.lang.reflect.Method.invokeNative(Native Method)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at java.lang.reflect.Method.invoke(Method.java:521)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    09-04 10:00:42.080: ERROR/AndroidRuntime(398):     at dalvik.system.NativeStart.main(Native Method)
    
    
     
  16. Maniac, 04.09.2009 #16
    Maniac

    Maniac Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    48
    Registriert seit:
    08.07.2009
    EGpsService.java:147

    Das gibt Dir doch die Datei und die Zeilennummer an... da einfach mal schauen, was Du da tust und ob da ggf. ein Objekt null sein könnte. Bzw. einfach mal rein debuggen...
     
  17. joschika77, 04.09.2009 #17
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Oh man, ich kann nicht gucken...:mad: Danke dir.
    Sag mal ich hab da immer noch ne andere Exception die aber kein Problem darstellt, also das Prog stürzt nicht ab davon. Das stört/nervt aber. Offensichtlich hat er ein Problem mit Cursor.finalize(). Wäre gut wenn du dazu was sagen könntest.

    Code:
    09-04 10:14:02.601: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:02.601: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431ca2f8 on null that has not been deactivated or closed
    09-04 10:14:02.601: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:02.601: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:03.261: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:03.261: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c9ba8 on null that has not been deactivated or closed
    09-04 10:14:03.261: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:03.261: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:03.751: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:03.751: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c9868 on null that has not been deactivated or closed
    09-04 10:14:03.751: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:03.751: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:08.540: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:08.540: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c8e58 on null that has not been deactivated or closed
    09-04 10:14:08.540: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:08.540: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:08.998: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:09.000: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c8768 on null that has not been deactivated or closed
    09-04 10:14:09.000: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:09.000: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:09.310: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:09.310: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c8018 on null that has not been deactivated or closed
    09-04 10:14:09.310: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:09.310: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:09.662: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:09.662: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c7cd8 on null that has not been deactivated or closed
    09-04 10:14:09.662: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:09.662: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:24.251: DEBUG/dalvikvm(462): threadid=5: still suspended after undo (s=1 d=1)
    09-04 10:14:24.251: INFO/ActivityManager(62): Stopping service: com.logbook/.EGpsService
    09-04 10:14:24.550: INFO/ActivityManager(62): Stopping service: com.logbook/.ESendDataService
    09-04 10:14:24.640: DEBUG/LocationManager(462): removeUpdates: listener = com.logbook.EGpsService$MyLocationListener@431bb528
    09-04 10:14:25.685: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:25.685: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c7440 on null that has not been deactivated or closed
    09-04 10:14:25.685: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:25.685: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:25.960: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:25.960: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c6e68 on null that has not been deactivated or closed
    09-04 10:14:25.960: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:25.960: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    09-04 10:14:26.160: INFO/dalvikvm(462): Uncaught exception thrown by finalizer (will be discarded):
    09-04 10:14:26.160: INFO/dalvikvm(462): Ljava/lang/IllegalStateException;: Finalizing cursor android.database.sqlite.SQLiteCursor@431c6890 on null that has not been deactivated or closed
    09-04 10:14:26.160: INFO/dalvikvm(462):     at android.database.sqlite.SQLiteCursor.finalize(SQLiteCursor.java:596)
    09-04 10:14:26.160: INFO/dalvikvm(462):     at dalvik.system.NativeStart.run(Native Method)
    
    
     
  18. swordi, 04.09.2009 #18
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    du musst nach dem benutzen eines cursors diesen immer wieder schließen

    cursor.close();

    das mag er gar nicht, wenn die offen bleiben ;)
     
  19. joschika77, 04.09.2009 #19
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Wie? Immer wieder? Dachte beim Start des Prog. öffnen und beim Beenden des Progs. wieder schliessen.
     
    cptechnik bedankt sich.
  20. Maniac, 04.09.2009 #20
    Maniac

    Maniac Android-Experte

    Beiträge:
    609
    Erhaltene Danke:
    48
    Registriert seit:
    08.07.2009
    Jein... wenn Du z.B. Deine Activity verlässt (oder z.B. den Schirm drehst), kann es auch sein, dass diese Activity zerstört wird und damit auch der Cursor. Wenn der dann nicht geschlossen ist, ist das böse...

    Also in Activitys kannst Du Dir den Cursor vom Framework managen lassen -> siehe managedQuery.

    Ansonsten halt genau auf die Lifecycle-Methoden achten...
     

Diese Seite empfehlen