私はしばらくこれを理解しようとしてきましたが、今は前進していないようです。基本的に、アクティビティが破棄されて再作成されるときと、アクティビティが実行されるプロセスが破棄されて再作成されるときの違いを理解しようとしています。
ここの図によると: http://developer.android.com/reference/android/app/Activity.html、基になるアプリプロセスが再作成された場合にのみ、アクティビティが再作成されるようです。
ただし、ボタンが 1 つの単純なプログラムを作成するとします。
public class HelloAndroidActivity extends Activity {
private int test = 15;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), test + " ", Toast.LENGTH_SHORT)
.show();
test++;
}
});
}
}
ボタンをクリックすると、数字 15、16、17 が表示されます。ただし、プログラムを終了してメイン メニューに移動して再入力するか、画面の向きを変更すると、15 に再設定されます。したがって、アクティビティが再作成されている必要があります。
ただし、プログラムは常に実行されているため (タスク マネージャーに移動するとわかるように)、プロセスは破棄されていません。
同様に、変数 test を静的変数に変更すると、アクティビティが破棄されて再作成されても、その値が保持されます。したがって、プロセスはアクティビティとは別個のものでなければなりません。
Android アクティビティ サイトの図によると、アクティビティは、基になるプロセスに対してメモリが少なすぎる場合にのみ再作成されますが、ここでは、画面の向き、移動など、他の多くのシナリオで再作成されるようです。メインメニューなど
私の質問は次のとおりです。Activity ライフサイクルと基になる Process ライフサイクルの違いは何ですか? また、基になるプロセスを保持する Android の図に示されていないアクティビティの再作成のパスはありますか?
この質問についてご協力いただきありがとうございます。