2013-03-07 2 views
0

을 닫는 :마무리() 나는 다음을 수행 응용 프로그램했습니다이 개 활동 대신 한

활동 A -> 활동 B -> 활동 B2 -

활동 A> 활동 C를 -> 활동 C

B, B2 또는 C를 닫으면 이전 활동으로 이동합니다. A를 닫으면 앱을 종료합니다.

B에서 C에 도착하면 C는 한 가지 방법으로 작동하지만 B2에서 도착하면 C가 조금 다른 방식으로 작동합니다.

에뮬레이터와 모든 장치를 검사 할 때 완벽하게 작동하지만 안드로이드 4.0.4를 사용하는 두 개의 Xperia (모델 ARC & U)에 문제가 발생했습니다.

문제는 C에서 B로 도착할 때 발생합니다. C를 닫으면 B 대신 A로 돌아갑니다. B2에서 C에 도착하면 닫을 때 B2로 돌아갑니다.

나는 그것을 이해할 수 없다. C가 두 경우 모두 같은 방식으로 작업해야한다고 가정합니다.

그리고 다른 질문은 :이 앱을 제외한 나머지 모든 기기에서 앱이 어떻게 완벽하게 작동 할 수 있습니까?

아이디어가 있으십니까? 이 문제를 어떻게 해결할 수 있습니까?

편집 추가하는 코드 : B2에서

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; 

열기 C : B에서

열기 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에서 최종 작업을 개방하고있어 . 모든 최종 활동은 동등하게 작동합니다.

감사합니다.

+1

코드를 게시하십시오. –

+0

코드를 게시하여 다른 활동을 호출하는 방법 – Nirali

+0

코드를 게시하십시오. –

답변

1

마지막으로, 문제를 해결할 수있었습니다.

@Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 
    super.onDestroy(); 
    ABD.erase(); 
      finish(); 
} 

여러분의 도움에 감사드립니다 :이 같은들의 OnDestroy() 메소드에 잃은 마무리()이 있었다

.

이제는이 finish()가이 두 모델을 제외한 다른 모든 장치에서 아무 것도하지 않은 이유는 무엇입니까?

미해결 미스터리 ...

0

이 코드를 사용하여 새 활동을 엽니 다.

 Intent i = new Intent(CurrentActivity.this, 
      OpeningActivity.class); 
    startActivity(i); 

CurrentActivity를 교체하고 OpeningActivity

어떻게 응용 프로그램이 두 가지를 제외한 모든 장치에서 완벽하게 작동하는 것이 가능하다?
다른 플랫폼, 다른 화면 크기 및 다른 사양 등 다양한 유형의 휴대 전화를 선택하여 수동으로 확인해야합니다.

+0

친구들과 확인한 결과 여전히 Sony Xperia에 문제가 있습니다. –

+0

Answer –

+0

**에서 언급 한 것처럼 코드가 변경되었습니다 ** 다른 유형의 휴대 전화를 선택하여 수동으로 확인해야합니다 ** ... 특정 Android 버전으로 특정 장치를 에뮬레이트 할 수 있습니까? 내 말은, 예를 들어 안드로이드 4.0.4로 Sony Xperia Arc를 에뮬레이션 할 수 있습니까? –