2012-03-10 6 views
0

私は4つの活動をしています。Androidのアクティビティは並行して開始しますか?

(1)(2)(3)(4)のようになります。

(1)は、最初のアクティビティまたはメインアクティビティです。

私はこれらの活動のためのボトムバーを持っています。 (2)をクリックすると、2番目のアクティビティを開きます。この後に (3)をクリックすると、3番目のアクティビティを開きます。 (4)をクリックすると、4番目のアクティビティを開きます。

この後、(1)をクリックすると最初のアクティビティが表示されます。 他のアクティビティを終了したり、(1)アクティビティを再度開いたりすることなく

理解を容易にするために画像を添付ます。..

enter image description here

明確に表示する新しいタブでこのイメージを開いてください。 tabhostを使わずにこれをやりたい アクティビティグループを使用してこれを行うことができます。

は、これに関する任意の例またはチュートリアルを示唆しています。

おかげロックブラウン

答えて

2

このユースケースは、すでにプラットフォームに組み込まれています:

あなたのAndroidManifest.xmlでは各アクティビティのactivity要素があります。 1のためのactivity要素でlaunchMode設定:

android:launchMode="singleTask"

これはのみ、これまでに活動1の1つのインスタンスを起動するプラットフォームの原因をアプリのtask(活動の積み重ねである。)

intent.setFlags(intent.getFlags() | FLAG_ACTIVITY_REORDER_TO_FRONT);

:あなたは activity 1、2、3、または4が FLAG_ACTIVITY_REORDER_TO_FRONTを含めるように Intentのフラグを設定開始します

これにより、activityを新しく作成せずにスタックの上に置くのではなく、activityスタックの先頭に1、2、3、または4の既存のインスタンスを持ち込むことができます。

+0

あなたはもっと説明したり、私はアンドロイドに新しいですチュートリアルを持っていることができます.. –

+0

私は答えを少し詳しく説明します。 – nmr

+0

ありがとう兄弟私は私の答えを得た.. –

0

良い例です。あなたの活動はバックグラウンドにあります。

0

私は、おそらくTabHostチュートリアルを見てみたいとAashishは同意します。

しかし、はい、あなたはTabHostなしでそれを行うことができます。

マニフェストで定義されている起動アクティビティを前提に、アクティビティ(1)が最初に起動します。 Context.startActivity(Intent)を使用して、いつでも他のアクティビティの1つに切り替えることができます。

バンドルに保存された状態に基づいて(1)が表示される前に、またはユーザの好みに保存される(つまり、最後に使用されたアクティビティで再起動される)前に、これを行うこともできます。このような場合は、現在のアクティビティをバックスタックに入れたくないので、次のアクティビティを起動した後でActivity.finish()を呼び出します。

public void showNextActivity(){ 意図インテント=新しいインテント(this、NextActivity.class); startActivity(インテント); finish(); // ThisActivityはバックスタックにありません。 }

アクティビティ(ボタンなど)を変更したり、切り替えを処理するために使用されるウィジェットを管理するアクティビティ間で共有されるコードが必要です。各アクティビティに独自のリソースがある場合でも、それぞれに同じリソースIDを使用できます。したがって、アクティビティ2を選択するButtonは、各アクティビティでID「act2」を持ちます。これにより、コードの共有が容易になります。

関連する問題