2017-02-11 5 views
0

私はこの質問が別の記事でも回答されていることを知っています。しかし、それは私の問題を解決しません。Androidのアクティビティスタックをクリアしてアクティビティを開始します

私は3 screens: A,B and Homeです。アプリケーションはAで始まり、次にBに進み、次にホームページに進みます。しかし、私はホームアクティビティに達するとアクティビティAとBを削除したいので、back is pressed app exitsのときにそれを削除します。

私が試した:

  1. Intent.FLAG_ACTIVITY_CLEAR_TOPを。バックを押すとうまく動作します。アプリケーションは終了します。しかし、バックグラウンドからアプリをもう一度開くと、画面Bから始まります。

  2. Intent.FLAG_ACTIVITY_NEW_TASK.これは私の望むとおりに機能します。しかし、ホームアクティビティが始まると、画面に突然の不具合があり、滑らかではありません。

+0

ホームアクティビティロードでアクティビティaとbを終了することができます。または、 – curiousMind

答えて

0

次のコードを試してください:あなたはまた、この方法を行うことができ、あなたのスプラッシュスクリーン(A)のためにあなたがAndroidMenifest.xmlで真= nohistory設定、および後藤活動(B)ができ

Intent i = new Intent(YourActivity.this, HomeActivity.class); 
      i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
finish(); 
startActivity(i); 
+0

Intent.FLAG_ACTIVITY_NEW_TASKが不具合となり、トランジションがスムーズではありません。 – jayasoo

0

を、あなたがアクティビティ(B)からアクティビティ・ホームを行っているときに、アクティビティ(B)を終了するときは、ホーム・アクティビティに移動します。 これまでの両方のアクティビティはスタックに格納されません。

アクティビティBはonBackPresh()メソッドをオーバーライドしますが、side.backpresh()はサイドで削除します。あなたのアクティビティAを開始して、この現在のアクティビティを終了すると、動作します。

+0

解決策では、Bから戻るボタンを押すと、 Aに戻る。 – jayasoo

+0

一般的に一度表示するとスラッシュスクリーンは表示されません。 –

+0

どちらもログイン画面です。私の文脈では、戻って行くことが必要です。 – jayasoo

1
Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

これは、家の上にあるすべてのアクティビティをクリアします。

関連する問題