2017-01-19 3 views
0

開発中のAndroidアプリケーションをテストしています。Activity.onDestroyはすべての戻るボタンのプッシュで呼び出されます

それは、単一のMainActivity

が含まれている私はonDestroyが、私は戻ってボタンを押すたびに呼び出されたことをテストを通じて気づきました。

これは奇妙だと思いました。だから私はアンドロイドスタジオを使って新しく空のアクティビティアプリを作成し、コードを追加しませんでした。ちょうど単純なこんにちは世界。

このhello worldアプリでも、私は背中を押すたびにonDestroyが呼び出されています。

私はSamsung S4を使用していますが、リソースが不足していると信じる理由はありません。ここで何が起こっているのですか?

私はアンドロイドの設定を試みた:のAndroidManifest.xmlで使用可能なすべての値にlaunchModeを、そしてそれのどれも働いていない....あなたはボタンすなわちアンドロイドのデフォルトの動作をバック押している時はいつでも破壊なっ

答えて

0

活動を。これがコードの流れです。 オーバーライドは、あなたの活動、それは最初のアクティビティからすべてのフラグメントをポップアップ表示されますし、それが活動を終了することを示しているFragmentActivityの内側にあるonBackPressed内部

/** 
    * called when user press back button on device 
    */ 
    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
    } 

ゴー内onBackPressed。

/** 
    * Take care of popping the fragment back stack or finishing the activity 
    * as appropriate. 
    */ 
public void onBackPressed() { 
    if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) { 
     supportFinishAfterTransition(); 
    } 
} 
0

戻るボタンを押した後にOnDestroy()が呼び出されるのは通常の動作です。これはAndroid Activity Lifecycleの標準的な部分です。ここでライフサイクルについて読むことができます:https://developer.android.com/guide/components/activities/activity-lifecycle.html

正当な理由がない限り、jiteshが示唆しているように、バックボタンの動作を無効にすることはお勧めしません。ユーザーは、戻るボタンを押すとあなたのアプリが「閉じた」(破壊された)と予想します。

0

あなたはOnDestroy()毎回呼び出されていないが必要な場合は、戻るボタンをタップする:

@Override 
public void onBackPressed() { 
    // super.onBackPressed(); // remove this line 
} 
関連する問題