2012-03-31 11 views
0

startActivity関数を使用して別のアクティビティに移動すると、問題が発生します。 常にゼロから作成されます。アクティビティAが以前に訪問された場合でも、アクティビティBに移動してから再びアクティビティAに戻ると、アクティビティAが再び作成されます。Androidアクティビティを作成する方法(まだ作成されていない場合のみ)

問題は私がアクティビティA、次にB、次にA、そしてBを に移動すると、アプリケーションを閉じるために戻るボタンを4回押す必要があります。 私はそれがそれのように行動すべきではないと思います。ユーザは、最初に戻るボタンを押したときにアクティビティAに行くことができ、2番目のプレスがアプリケーションを閉じるべきであるはずです。

この問題を解決するにはどうすればよいですか? ご挨拶

答えて

0

ソリューションは、しかし、彼らは私のためにそれをしなかった、これまでに提案されているように、フラグFLAG_ACTIVITY_REORDER_TO_FRONTを設定する必要があります。 しかし、活動を開始する間に、フラグFLAG_ACTIVITY_CLEAR_TOPを使用していました。

私は正しい方向に向いてくれてありがとう。

0

onSaveInstanceStateを実装し、BundleのアクティビティをonCreateに復元する準備があることを確認してください。それはあなたが活動に戻るときのあなたがどこにいたかを再確立する方法です。

0

を再使用するために、以前に作成したアクティビティの原因になりますあなたがそうアクティビティAを起動するための自分の意思にFLAG_ACTIVITY_SINGLE_TOPを設定する必要がマニフェスト

+0

これは正しい解決策ではありません。 launchModeの変更は、非常に珍しいアプリケーションがない限り、悪い考えです。 –

0

であなたの活動にlauncheMode =「singleTask」を追加します。 onNewIntentメソッドで、後でインテントを処理するようにしてください。 For more info

+0

これはポスターの状況には役立ちません。彼は、アクティビティAからアクティビティB、次にアクティビティAに行くと言います。この場合、アクティビティBからアクティビティAを起動すると、アクティビティAがFLAG_ACTIVITY_SINGLE_TOPで開始されても、アクティビティAの新しいインスタンスが作成されますアクティビティスタックの先頭にはありません。 –

1

次のような活動に遷移している場合:

アクティビティAを - >活動B アクティビティB - >活動

と、ユーザーが、この場合、アクティビティAの同じインスタンスに戻りたいですアクティビティAのstartActivity()を呼び出した後に、アクティビティBでfinish()を呼び出すだけでよいでしょうか?

これが役に立たない場合は、何をしようとしているのか詳細をお知らせください。

0

は、あなたはBまたはその逆から活動Aを起動したときに、私が試した

i = new Intent("....ActivityAorB"); 
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(i); 
関連する問題