Je suis victime d'un accident dans mon application lorsque je quitte (via le bouton de retour) hors de mon activité. Autant que je sache, cela se passe dans le code Android et non dans le code, mais je ne suis pas complètement convaincu de cela.Pourquoi suis-je victime d'un plantage lorsque je quitte mon activité?
Voici le stacktrace de adb:
AndroidRuntime E Uncaught handler: thread main exiting due to uncaught exception
AndroidRuntime E java.lang.RuntimeException: Unable to stop activity {MyApp/MyApp.MainActivity}: java.lang.NullPointerException
AndroidRuntime E at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3097)
AndroidRuntime E at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3159)
AndroidRuntime E at android.app.ActivityThread.access$2400(ActivityThread.java:112)
AndroidRuntime E at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1724)
AndroidRuntime E at android.os.Handler.dispatchMessage(Handler.java:99)
AndroidRuntime E at android.os.Looper.loop(Looper.java:123)
AndroidRuntime E at android.app.ActivityThread.main(ActivityThread.java:3948)
AndroidRuntime E at java.lang.reflect.Method.invokeNative(Native Method)
AndroidRuntime E at java.lang.reflect.Method.invoke(Method.java:521)
AndroidRuntime E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
AndroidRuntime E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
AndroidRuntime E at dalvik.system.NativeStart.main(Native Method)
AndroidRuntime E Caused by: java.lang.NullPointerException
AndroidRuntime E at android.app.Activity.performStop(Activity.java:3575)
AndroidRuntime E at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3092)
AndroidRuntime E ... 11 more
Quelqu'un a des idées/recommandations?
Je pense qu'ils devraient être gérés par l'activité ... J'ai appelé startManagingCursor() sur le seul curseur que j'utilise. Ne devrait-il pas gérer cela? –
À partir des documents: Cette méthode permet à l'activité de gérer le cycle de vie du curseur donné en fonction du cycle de vie de l'activité. C'est-à-dire que lorsque l'activité est arrêtée, elle appelle automatiquement deactivate() sur le curseur donné, et quand elle est relancée plus tard, elle appelle query() pour vous. Lorsque l'activité est détruite, tous les curseurs gérés seront automatiquement fermés. –
N'est-ce pas exactement ce que le code que vous avez posté devrait faire? –