J'ai une activité parente et une activité enfant qui étend l'activité parente. Lorsque le parent démarre l'activité enfant,Activité parent et enfant Android onCréer une question
Quelle onCreate est exécutée en premier? L'enfant ou le parent?
Une variable particulière est définie dans la méthode onCreate de l'activité enfant. En ce moment, il semble qu'il faut un certain temps avant d'accéder à onCreate de l'activité enfant. Les méthodes du parent signalent donc une variable vide . Alors que quand je fais dormir le parent pendant un moment, il rapporte la variable correcte.
Merci Chris
Activité 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);
}
}
Activité enfant:
@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;
}
Donc, en gros, même après que le parent commence l'enfant, il retourne toujours "Valeur parent" , mais quand j'ai le fil de sommeil, il retourne "Valeur enfant".
Il serait préférable que vous postez le code. – primpap
Ce serait encore mieux si vous avez posté * tout * du code. Il semble que vous confondiez l'héritage Java ("extends") avec 'startActivity()', et il est donc très difficile de comprendre exactement ce que vous avez écrit ici. – CommonsWare
Mon mauvais, j'étais en train de me confondre avec les extensions et startActivity. J'appelais super en premier, et c'est pourquoi onCreate de mon Parent était exécuté d'abord. Merci CommonsWare !!! – Chris