0

활동 A와 B가 있습니다. 활동 B에있을 때 일부 활동이 트리거되면 활동 A를 호출합니다. 활동 B에서 활동 결과에 대한 요청 코드를 점검하면서 startActivityforResult를 사용하고 있습니다 활동 A가 호출 된 후 UI에 경고 대화 상자를 표시합니다. 그러나 내 onActivityresult이 호출되지 않으므로 대화 상자가 표시되지 않습니다.onActivityforResult가 실행되지 않거나 호출되지 않았습니다.

아래 코드는 제 코드입니다.

public void Logout() { 
     autoLogoutHandler.removeMessages(MSG_APP_LOGOUT); 
     Intent intent = new Intent(Activity_B.this, 
       Activity_A.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivityForResult(intent, OPEN_NEW_ACTIVITY); 
    } 

그리고 내 onActivityResult를 내 요청 코드를 확인하고 있습니다 만,이 호출되지 .

@Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      if (requestCode == OPEN_NEW_ACTIVITY) { 
       alert = new AlertDialog.Builder(getBaseContext()) 
         .setTitle(null) 
         .setMessage(getString(xxxx)) 
         .setIcon(null) 
         .setPositiveButton(getString(xxxx), new DialogInterface.OnClickListener() { 

          public void onClick(DialogInterface dialog, int whichButton) { 


          } 
         }).show(); 
      } 
    } 

이유 onActivityResult가 호출되지 내 누군가가 나를 도울 수 있습니까?

A- > start onActivityResult -> B -> setResult() & finish() -> A -> handles onActivityResult -> voila!

활동 호출 활동 B에 대한 & 대기,이 활동 후 프로세스가 정보를 그 다음 것입니다 :

+0

는 귀하의'onActivityResult' ActivityB 또는 ActivityA에? –

+0

그것의 활동 B. – DroidDev

+0

왜'intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP);'를 사용합니까? 어떤 시점에서 ActivityA가 ActivityB 전에 시작 되었습니까? – rubenlop

답변

0

귀하의 흐름은 현재 대신 무엇을해야

A -> opens -> B -> start onActivityResult -> A // doesn't work

입니다 작업 결과가 성공 (RESULT_OK)인지 또는 실패/취소 (RESULT_CANCELED)인지 여부를 반환해야합니다.

활동 B가 종료 후, 활동 A는 onActivityResult 방법을 수행합니다, 그리고 가장 좋은 방법은, 당신이 requestCode가이 startActivityForResult에서 호출 된 확인하고 다음 작업이 성공적인 아닌지 여부를 확인 ...

문서에 따라
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == 1) { 
    if (resultCode == RESULT_OK) { 
     // do work if successful 
    } 
} 
... 

Undestanding하여 onActivityResult : https://developer.android.com/training/basics/intents/result.html

+0

내 Activity_B를 호출하는 방법입니다. 내가 Activity_B에있을 때 나는 그것에 여러 가지 파편이있다. 하나의 frag에서 Activity_A (로그인 화면)로 앱에서 로그 아웃하고있다. 결과 확인이 없으므로 Activity_A에서 Activity_B로 이동할 때 startacitivityForResult를 사용하고 싶지 않습니다. public void Activity_B() { 의도 의도 = 새 의도 (Activity_A, Activity_B.class); intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra ("tabIndex", 0); startActivity (intent); } – DroidDev

+0

해당 메소드의 startActivity는 'startActivityForResult (intent, code)'로 대체되어야합니다. –

+0

도움이되지 않습니다. – DroidDev