2

私はアンドロイドが初めてで、アプリケーションには合計6〜7のアクティビティがあります。A->B->C->D のように移動するとき、自分の活動を適切に管理する方法を知りたいです。次に、これらのアクティビティのスタックが作成されていないことをどのように移動できますか。

あるアクティビティから別のアクティビティに移動する際に、次のコードを使用しています。

Intent intent=new Intent(current.this,next.class);
                startActivityForResult(intent, 0);

そして、以前のアクティビティに戻りたい場合は、コードを次のように使用しました。

Intent start = new Intent(current.this,next.class);
                    startActivity(start);
                    finishActivity(0);
4

4 に答える 4

3

アクティビティスタックを使用せず、アクティビティに処理させたくない特別な理由はありますか?

Androidシステムは、アクティビティのライフサイクルで非常に優れた仕事をしています。戻るボタンを押すとユーザーは別のアクティビティに戻るため、ユーザーを混乱させることなく、さまざまな場所からアクティビティを開始できます。

Androidガイドラインを使用しない正当な理由がない場合は、システムの実行方法に固執するようにしてください。他のすべてのものはあなたに問題を与えるだけです。

あなたは結果を得るために活動を始めていますが、私があなたを理解している方法では、あなたは決して彼らに戻らないでしょう。

アクティビティを開始し、その後、現在のアクティビティを終了することができます。そうすれば、アクティビティはバックスタックに置かれません。次に、戻るボタンの押下をリッスンし、ユーザーに表示するアクティビティを作成する必要があります。

アプリのスタート/ホーム画面に移動するようにアクティビティAからDに移動する場合は、次のようにします。

  Intent goBackToA = new Intent(context, StdActivity.class);
  goBackToA.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(goBackToA);

フラグFLAG_ACTIVITY_CLEAR_TOPは、バックスタックにアクティビティのインスタンスが含まれている場合、このアクティビティが表示され、現在のアクティビティとターゲットアクティビティの間にあるすべてのアクティビティがバックスタックから削除されることをシステムに通知します。これにより、ユーザーが戻るボタンで移動できる巨大なループを作成せずに、ホームアクティビティに戻ることができます。

于 2012-05-15T06:12:43.863 に答える
1

前のアクティビティに戻るには、新しいインテントを作成する必要はありません。消えるはずのアクティビティで this.finish() を呼び出すだけです。

于 2012-05-15T06:03:44.680 に答える
1

前のアクティビティに戻るには、新しいインテントを作成する必要はありません。消えるはずのアクティビティで this.finish() を呼び出すか、戻るボタンを押して前の Activity を表示します。

于 2012-05-15T06:06:33.547 に答える
1

あるクラスから別のクラスに移動したいときはいつでも、このコードを使用してください。これは、アクティビティをナビゲートするのに役立ちます。

 Intent nextpage = new Intent(CurrentActivity.this,NextActivity.class);
    startActivity(nextpage);
    this.finish();
于 2012-05-15T06:10:02.180 に答える