私はちょうどAndroidプログラミングを学んでいます。私が理解している方法は、サービスがスタックのように機能することです。アクティビティが、前のアクティビティだけでなく、アプリを開始した最初のアクティビティに戻る方法はありますか?
例として、a、b、c、d の 4 つのアクティビティがあるとします。アクティビティ d にアクティビティ a を起動するボタンを付ける方法はありますか?? アクティビティ d が c に移動し、c が b に戻る代わりに???
私はちょうどAndroidプログラミングを学んでいます。私が理解している方法は、サービスがスタックのように機能することです。アクティビティが、前のアクティビティだけでなく、アプリを開始した最初のアクティビティに戻る方法はありますか?
例として、a、b、c、d の 4 つのアクティビティがあるとします。アクティビティ d にアクティビティ a を起動するボタンを付ける方法はありますか?? アクティビティ d が c に移動し、c が b に戻る代わりに???
アクティビティaを再開できますが、インテントでフラグを使用します。
FLAG_ACTIVITY_REORDER_TO_FRONT
Context.startActivity() に渡された Intent に設定されている場合、このフラグにより、起動されたアクティビティが既に実行されている場合、そのタスクの履歴スタックの先頭に移動されます。
これを使用すると、新しいアクティビティを開始する代わりに、既に実行中のアクティビティのインスタンスを再利用できます。これを行うと、アクティビティb、c、およびdのインスタンスがバックスタックに残ることに注意してください (現在はアクティビティa の後)。
それ以外の場合、このアクティビティを終了する (およびバック スタックから削除する) 場合は、次の他のフラグを使用して( dから)アクティビティaを開始できます。
FLAG_ACTIVITY_CLEAR_TOP
設定されていて、起動されているアクティビティが現在のタスクで既に実行されている場合、そのアクティビティの新しいインスタンスを起動する代わりに、その上にある他のすべてのアクティビティが閉じられ、このインテントがに配信されます (現在上)新しいインテントとしての古いアクティビティ。
編集: これは、まだ読んでいない場合に読むのに適したリソースです: Tasks and Back Stack。
Activities
を介して別のに情報を送信できますIntents
。
Intent myIntent = new Intent(this, AvitivityName.class);
startActivity(myIntent);
にを追加することを忘れないでActivities
くださいAndroidManifest.xml
。
これがAndroidのチュートリアルIntents
です:
コマンドを使用する
finish():
メインページに戻ります
または、次を指すインテントを記述します
はい、できます。アクティビティのインテントをボタンにコーディングするだけです。