1

「メイン」と呼ばれる 1 つのメイン アクティビティと、何らかの作業を行ってからデータを返す他のサブアクティビティがあるとします。main が呼び出されるたびに、サブアクティビティが 1 つずつ開始されます。

主要:

onCreate...{

Intent i1 = new Intent("com.bla.bla.activity1");
startActivity(i1);

//Get bundles from activity1 and save some variables..

Intent i2 = new Intent("com.bla.bla.activity2");
startActivity(i2);

//Get bundles from activity2 and save some variables..

Intent i3 = new Intent("com.bla.bla.activity3");
startActivity(i2);

//Get bundles from activity1 and save some variables..
}

私の理解が正しければ、最初に activity1 が作成され、次に破棄されます。コードは再開して activity2 を開始しますか、それともメイン アクティビティが一時停止されてから再開されたため、再び activity1 を開始しますか (onResume/onPause などを追加しないと仮定します)?

編集:

これらのサブアクティビティがそれぞれ 1 つの文字列を返し、各文字列がメイン アクティビティの最後にある SQL エントリの 1 つの個別の列に保存されるとします。メイン アクティビティは 3 つの文字列を収集し、それを en エントリとして保存し、それ自体を破棄する必要があります。これが機能するには、インテント「i1」が何らかの作業を行って文字列を返した後、たとえばインテント「i2」でメイン アクティビティを再開する必要があります。この結果をどのように達成するのが最善ですか?

4

1 に答える 1

0

アレックスが言ったように、あなたはそれをしたくないでしょう. さまざまなインテントを使用してさまざまなアクティビティを呼び出し、プログラムへのフローを作成したいと考えています。メインはアクティビティ 1 につながる可能性があり、アクティビティ 1 は 2、3、または 4 につながります。複数のアクティビティがある場合は、switch ステートメントを使用して、条件が満たされているか満たされていないかに基づいて、起動するアクティビティを決定できます。 .

お役に立てれば。

編集回答:

異なるアクティビティから変数を保存する場合は、2 番目のアクティビティを最初のアクティビティから、3 番目のアクティビティを、2 番目のアクティビティから、というように開始します。データベースのデータを作成するには、単純にオブジェクトを作成し、Parcelableインターフェイスを使用してそのオブジェクトを Activity から Activity に渡します。必要に応じて、各アクティビティ内でメソッドを使用して、返されたデータをデータベースに保存します。

于 2012-07-07T00:38:59.790 に答える