親アクティビティと、親アクティビティを拡張する子アクティビティがあります。親が子の活動を開始すると、
どのonCreateが最初に実行されますか?子供ですか、それとも親ですか?
子アクティビティのonCreateメソッドに設定している特定の変数があります。現在、子アクティビティのonCreateに到達するまでに時間がかかるようです。そのため、親のメソッドは空の変数を報告しています。一方、親をしばらくスリープ状態にすると、正しい変数が報告されます。
ありがとうクリス
親の活動:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
goButton = (ImageButton) this.findViewById(R.id.goButton);
goButton.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent childIntent = new Intent("com.example.Child");
String newValue = "Child Value";
Bundle bun = new Bundle();
bun.putString("value", newValue); // add two parameters: a string and a boolean
childIntent.putExtras(bun);
startActivity(childIntent);
}
});
this.doTheWork("Parent Value");
}
private void doTheWork(String value) {
new MyNewThread(value).start();
}
public String getTheValue(String value) {
return "My Value is: " + value;
}
private class MyNewThread extends Thread {
String value;
public LoadThread(String v) {
this.value = v;
}
@Override
public void run() {
String str = getTheValue(this.value);
}
}
子供の活動:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bun = getIntent().getExtras();
childValue = bun.getString("value");
}
public String getTheValue(String value) {
return "My Value is: " + value;
}
したがって、基本的に、親が子を開始した後でも、「親値」を返しますが、スレッドをスリープ状態にすると、「子値」を返します。