2

同様の時計アプリケーションでこのサンプル コードを使用しました: http://about-android.blogspot.in/2010/04/create-apps-to-show-digital-time-in_19.html

正常に動作しますが、戻るボタンまたはホーム ボタンを使用すると、ログに nullpointerexception が記録されます。アプリケーションを停止できませんと表示されます。メソッドを削除すると:

timer.cancel();
timer.purge();
timer = null;

問題なく動作しますが、これはメモリを消費すると思いますか? /M

08-19 19:00:13.438: E/AndroidRuntime(1064): 致命的な例外: メイン
08-19 19:00:13.438: E/AndroidRuntime(1064): java.lang.RuntimeException: アクティビティを停止できません {se.macke .binarycounter/se.macke.binarycounter.MainActivity}: java.lang.NullPointerException
08-19 19:00:13.438: E/AndroidRuntime(1064): android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2624) で
08- 19 19:00:13.438: E/AndroidRuntime(1064): android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:2690)
08-19 19:00:13.438: E/AndroidRuntime(1064): android.app. ActivityThread.access$2100(ActivityThread.java:117)
08-19 19:00:13.438: E/AndroidRuntime(1064): android.app.ActivityThread$H.handleMessage(ActivityThread.java:964) で
08-19 19:00:13.438: E/AndroidRuntime(1064): android.os.Handler.dispatchMessage(Handler.java:99)
08-19 19:00:13.438: E/AndroidRuntime(1064): Android で。 os.Looper.loop(Looper.java:123)
08-19 19:00:13.438: E/AndroidRuntime(1064): android.app.ActivityThread.main(ActivityThread.java:3683)
08-19 19:00: 13.438: E/AndroidRuntime(1064): java.lang.reflect.Method.invokeNative(ネイティブ メソッド)
08-19 19:00:13.438: E/AndroidRuntime(1064): java.lang.reflect.Method.invoke( Method.java:507)
08-19 19:00:13.438: E/AndroidRuntime(1064): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-19 19:00: 13.438: E/AndroidRuntime (1064): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) で
08-19 19:00:13.438: E/AndroidRuntime(1064): dalvik.system.NativeStart.main(ネイティブ メソッド)
08-19 19:00:13.438: E/AndroidRuntime(1064): 原因: java.lang .NullPointerException 08-19 19:00:13.438: E/AndroidRuntime(1064): se.macke.binarycounter.MainActivity.onStop(MainActivity.java:209)
08-19 19:00:13.438: E/AndroidRuntime(1064) : android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1170)
08-19 19:00:13.438: E/AndroidRuntime(1064): android.app.Activity.performStop(Activity.java:3873)
08-19 で19:00:13.438: E/AndroidRuntime(1064): android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2619)
08-19 19:00:13.438: E/AndroidRuntime(1064): ... 11 もっと見る
08-19 19:00:16.398: I/プロセス (1064): 信号を送信しています。PID: 1064 SIG: 9 08-19 19:00:16.450: I/ActivityManager(61): プロセス se.macke.binarycounter (pid 1064) が停止しました。08-19 19:00:16.450: E/InputDispatcher(61): チャネル '4079da00 se.macke.binarycounter/se.macke.binarycounter.MainActivity (サーバー)' ~ 消費者が入力チャネルを閉じたか、エラーが発生しました。events=0x8
08-19 19:00:16.450: E/InputDispatcher(61): チャネル '4079da00 se.macke.binarycounter/se.macke.binarycounter.MainActivity (サーバー)' ~ チャネルは回復不能に壊れており、破棄されます!

4

1 に答える 1

3

可視寿命ActivityonStart()ですonStop()。タイマーを に設定nullし、[戻る] ボタンまたは [ホーム] ボタンを使用してアプリケーションに再度アクセスしても、アプリケーションActivityが終了したことは保証されず、単に表示されなくなりました。そのため、を指している何かにアクセスすることにnullなり、したがってNPE.

于 2012-08-19T15:58:42.417 に答える