2013-02-08 3 views
0

응용 프로그램을 실행하는 동안 메모리 문제로 인해 활동이 종료됩니다.응용 프로그램이 백그라운드에서 종료 될 때 onActivityResult()가 발생했습니다.

내 활동에서 startActivityForResult() 메소드를 호출하여 카메라를 시작합니다. 호출하는 동작이 백그라운드에서 종료 될 때 비정상적인 동작을 보여줍니다. 인 텐트는 onRestoreInstance()를 입력 한 후 결과로 onActivityResult()로 반환되는 경우가 있습니다. 그러나 어떤 경우에는 onRestoreInstance()를 입력 한 후 onActivityResult()를 입력하지 않습니다.

이 문제가 발생하는 이유를 설명해주십시오.

 Intent i = new Intent(this, DatabaseEditor.class); 
     //You may pass value on another activity 
     i.putExtra("xCoordinate", String.valueOf(o)); 
     i.putExtra("yCoordinate", String.valueOf(p)); 
     i.putExtra("scale", scaleTest); 

     startActivity(i); 

다음이 코드

Bundle b = getIntent().getExtras(); 
    if (b != null) { 
     editTextX.setText(String.valueOf(b.getString("xCoordinate"))); 
     editTextY.setText(String.valueOf(b.getString("yCoordinate"))); 
     editTextScale.setText(Float.toString(b.getFloat("scale"))); 
    } 

를 사용하여 전달 된 값을 얻을 수있는 새로운 활동에

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1) { 

     if (resultCode == RESULT_OK) { 

      // Write your code on result ok return 
     } 
     if (resultCode == RESULT_CANCELED) { 
      // Write your code on no result return 
     } 
    } 
} 

을 onActivityResult를 오버라이드 (override)

+0

인쇄 스택 추적을 사용하면 다른 사람이 정확한 문제점을 이해할 수 있습니다. – Maulik

답변

0

이 코드를 사용하여 새로운 활동을 실행할 수 있습니다 이전 활동으로 돌아가고 싶다면 finish()를 호출하면됩니다.

//if you want to pass a value from this activity to you mainActivity use this 
      Intent returnIntent = new Intent(
     "com.example.activity.MainActivity"); 
      returnIntent.putExtra("id", streetID.intValue()); 
      setResult(RESULT_OK, returnIntent); 
      finish(); 

사용 된 setResult (RESULT_OK, returnIntent)를 설정 했으므로;

 if (resultCode == RESULT_OK) { 

      // Write your code on result ok return 
     } 

코드가 실행됩니다. 환호성 !!! : D

+0

나는 비디오를 캡처하기 위해 카메라를 열려고 의도했다. –

+0

in 당신이 통과하는 결과에 달렸습니다 .... 두 번째 인 텐트가 끝나기 전에 값을 전달했는지 확인하십시오 setResult (RESULT_OK, returnIntent); – dicenice

+0

경우에 따라 activityOnResult가 호출자 활동에서 호출되지 않습니다. –

관련 문제