35

onDestroy()常に呼び出されるわけではありません。呼び出された場合、コードの一部のみが実行されます。そして、ほとんどの場合、LogCatでは「gps state on destroy called first」というメッセージしか表示されません。何故ですか?

protected void onDestroy() {
    super.onDestroy();
    Log.d("on destroy called", "gps state on destroy called first");

    editor.putBoolean("gpsOn", false);
    Log.d("on destroy called", "gps state on destroy called second");
    editor.commit();

    Log.d("on destroy called", "gps state on destroy called third");
    stopRouteTracking();
    Log.d("on destroy called", "gps state on destroy called  fourth");
}
4

3 に答える 3

1

@Chrisの答えは正しいですが、コードを呼び出すsuper.onDestroy()前に、コードの一部しか呼び出されないという問題が発生する可能性があります。super.onDestroy()コードが破棄される前に呼び出されるため、最後に呼び出す必要があります。

于 2016-07-11T00:18:44.680 に答える