我有一個家長活動和一個擴展家長活動的子活動。當父母開始子女活動時,Android家長和兒童活動onCreate問題
哪個onCreate首先被執行?孩子還是父母?
我在Child活動的onCreate方法中設置了一個特定的變量,現在看起來它需要一段時間才能到達Child活動的onCreate,因此Parent中的方法報告一個空變量。而當我讓家長睡一會兒時,它會報告正確的變量。
感謝 克里斯
父活動:
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;
}
所以,基本上,父啓動子後,也仍然會返回 「父值」 ,但是當我讓線程休眠時,它返回「子值」。
如果您發佈代碼會更好。 – primpap 2010-07-02 04:22:38
如果您發佈了*全部*的代碼,它會更好。感覺就像你將Java繼承(「擴展」)與'startActivity()'混淆了,所以很難理解你在這裏寫的是什麼。 – CommonsWare 2010-07-02 06:41:17
我的不好,我確實與延伸和startActivity混淆。我先打超級,這就是爲什麼我父母的onCreate首先被執行。謝謝CommonsWare! – Chris 2010-07-02 06:58:53