我制作了一个执行以下操作的应用程序:
活动 A --> 活动 B --> 活动 C
活动 A --> 活动 B2 --> 活动 C
当您关闭 B、B2 或 C 时,它会转到上一个活动。如果您关闭 A,它将从应用程序中退出。
如果你从 B 到达 C,C 以一种方式工作,但如果你从 B2 到达,C 以一种不同的方式工作。
这在模拟器和我可以检查的所有设备中完美运行,但是在两个带有 android 4.0.4 的 Xperia(型号 ARC 和 U)中出现了问题。
当他们从 B 到达 C 时,问题就出现了。当他们关闭 C 时,他们回到 A 而不是 B。如果他们从 B2 到达 C,当他们关闭时又回到 B2。
我无法理解。假设 C 在这两种情况下都必须以相同的方式工作。
另一个问题是:该应用程序如何在除这两个设备之外的所有设备上完美运行?
任何的想法?我怎么解决这个问题?
编辑添加代码:
从 B 打开 C:
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// TODO Auto-generated method stub
switch (position+1) {
case 1:
if(random == true){
AnimalsBD.cmpt = Integer.parseInt(ABD.getNAct(Integer.toString(Aguila.ordre)))+1;
}
Intent a = new Intent ("com.android.JIA.Animals.1");
startActivity(a);
break;
case 2:
if(random == true){
AnimalsBD.cmpt = Integer.parseInt(ABD.getNAct(Integer.toString(Anec.ordre)))+1;
}
Intent b = new Intent ("com.android.JIA.Animals.2");
startActivity(b);
break;
从 B2 打开 C:
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// TODO Auto-generated method stub
mpCorrecte = MediaPlayer.create(this, R.raw.correcte);
mpIncorrecte = MediaPlayer.create(this, R.raw.incorrecte);
if(start){
switch (position+1) {
case 1:
if(numSo==1){
start = false;
mpCorrecte.start();
mpCorrecte.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
Intent a = new Intent ("com.android.JIA.Animals.1");
startActivity(a);}
});
}else{
mpIncorrecte.start();
}
break;
case 2:
if(numSo==2){
start = false;
mpCorrecte.start();
mpCorrecte.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
Intent a = new Intent ("com.android.JIA.Animals.2");
startActivity(a);}
});
}else{
mpIncorrecte.start();
}
break;
在这两种情况下,我都会从 gridview 打开最终活动。所有最后的活动都是平等的。
谢谢你。