我做了一个应用程序执行以下操作:
活动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打开最后一个活动。所有最后的活动都是平等的。
谢谢。
答案 0 :(得分:1)
最后,我可以解决问题。
在OnDestroy()方法中有一个finish()丢失,如下所示:
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
ABD.erase();
finish();
}
感谢您的帮助。
现在问题是:为什么这个finish()除了这两个模型外没有在任何设备上做任何事情?
未解之谜......
答案 1 :(得分:0)
使用此代码打开新活动。
Intent i = new Intent(CurrentActivity.this,
OpeningActivity.class);
startActivity(i);
替换CurrentActivity
和OpeningActivity
除了这两个设备外,应用程序如何在所有设备中完美运行?
你必须通过选择不同类型的手机,如不同的平台,不同的屏幕尺寸和不同的规格来手动检查。