Androidプロパティ設定android:noHistory = 'true'



Android Property Setting Android



android:noHistory = 'true'を設定した後、アクティビティはstatckに履歴トレースを残しません。デフォルト値はfalseです。

たとえば、A、B、Cの3つのアクティビティがあるとします。これらの3つのアクティビティは、次のアクティビティを順番に開始できます。たとえば、Aでボタンを作成し、ユーザーがクリックするとBにジャンプします。同様に、ボタンも作成します。 Bでは、クリックしてCにジャンプします。Cはボタンを実行しなくなり、デモンストレーション用のシェルアクティビティのみを実行します。



AndroidManifest.xmlでBのプロパティを次のように構成します:android:noHistory = 'true'

他の2つは、一般的なアクティビティのように、特別な設定を行いません。



Aが開始した後、AからBにジャンプし、次にBからCにジャンプすることがわかります。Cに入った後、リターンキーを押すと、BではなくAに直接入ります。単純なジャンプロジックルート:

A –> B –> C –>戻るキーを押す–> A

要約すると、アクティビティの動作に対するandroid:noHistory = 'true'の影響を理解できます。アクティビティ画面が表示されていない場合、AndroidシステムコールのActivity()メソッドに相当するものがアクティビティを終了します。




実験コード:


A.java

package zhangphil.test import android.support.v7.app.ActionBarActivity import android.view.View import android.widget.Button import android.content.Context import android.content.Intent import android.os.Bundle public class A extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) Button button = new Button(this) button.setText('click to jump to B') final Context context = this button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, B.class) startActivity(intent) } }) setContentView(button) } }


B.java

package zhangphil.test import android.support.v7.app.ActionBarActivity import android.view.View import android.widget.Button import android.content.Context import android.content.Intent import android.os.Bundle /** * android:noHistory='true' * * */ public class B extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) Button button = new Button(this) button.setText('click to jump to C') final Context context = this button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, C.class) startActivity(intent) } }) setContentView(button) } }

C.java

package zhangphil.test import android.support.v7.app.ActionBarActivity import android.os.Bundle public class C extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) } }


AndroidManifest.xml

|_+_|