2016-04-15 15 views
3

Androidでバックスタックをクリアする方法を知りました。私はログイン(LoginActivity)とアプリケーション(MainActivity)を使用する2つのアクティビティを持っています。それは断片の束から成っている。私はMainActivity上だと私はhomeボタンを押したときにこれは私がアンドロイドでのデフォルトの戻るボタンの動作を無効にする

Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
finish(); // call this to finish the current activity 

すべてが正常に動作しますMainActivityを開始するために使用されるコードで、アプリケーションが終了します。私はそれを開いて開くと、MainActivityが開きます。しかし、私がbackボタンを押すとアプリケーションが終了し、それを開いたときにLoginActivityが開きます。 backボタンを無効にするには、homeボタンと同じように動作するようにします。

+1

あなただけの(){ moveTaskToBack(真)onBackPressed @Override ます。public voidを置くことができます。 }あなたのメインアクティビティの横に – saeed

+0

http://stackoverflow.com/a/2000319/3790150 – saeed

答えて

5

が鳴ります。

あなたはonBackPressedをオーバーライドすることによってこれを行うことができます。

@Override 
public void onBackPressed() 
{ 
    moveTaskToBack(true); 
} 
1

アクティビティのメソッドを使用できます。あなたはいつものバックボタンの動作を行うのではなく、バックグラウンドにアプリを移動するには[戻る]ボタンの動作をオーバーライドしたいのような活動から

、フラグメントから

onBackPress() 

getActivity().onBackPress() 
0

あなたのMainActivityのonBackPressed()でLuncherアプリケーションを起動することができ、あなたがホームボタンを押しているようです。

によると:Going to home screen programmatically

@Override 
public void onBackPressed() { 
    Intent startMain = new Intent(Intent.ACTION_MAIN); 
    startMain.addCategory(Intent.CATEGORY_HOME); 
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(startMain); 
} 
関連する問題