2

별도로 두 개의 애플리케이션이 있습니다 .Client 및 Seller App. 나는 클라이언트 응용 프로그램에 돈을 지불하고 판매자 응용 프로그램에 대한 응답을 얻고 싶습니다. 어쨌든, 나는 깊은 연결 개념을 판매자 애플 리케이션에서 사용할 수 있습니다. 클라이언트 앱 : 클라이언트 app.getting 세부 정보 (첫 번째 활동 페이지) 내에 세 개의 활동 페이지가 있고 확인 (두 번째 활동)이 표시되며 지불은 세 번째 활동입니다. 참고 : 판매자 앱을 사용하여 고객 앱을 열고, 클라이언트 앱에서 모든 세부 정보와 결제 금액을 기입하고 판매자 앱에 응답을 보냅니다. 성공적으로 setResult.then, 판매자의 앱 활동을 사용하여 성공적으로 데이터를 전달하는 클라이언트 측에서 :seResult 또는 startActivityForResult를 사용하여 외부 앱 활동에서 onActivityResult 데이터를 가져 오는 방법

Intent object = new Intent(); 
object.putExtra("data", "3434434343343"); 
setResult(Activity.RESULT_OK, object); 
finish(); 

판매자 응용 프로그램 코드에 대한 :

protected void onActivityResult(int ResCode, int ReqRes, Intent data) { 

super.onActivityResult(ResCode, ReqRes, data); 

if (ResCode == 1 && ReqRes == Activity.RESULT_OK && data != null) { 

String response = data.getStringExtra("data"); 

} 
} 

문제가 여기에이 코드를 설정 한이 클라이언트 측에 대한 onActivityResult도 호출하지만 인 텐트 데이터는 NULL로만오고 있습니다. 왜냐하면 여기 클라이언트 측에서는 여러 액티비티를 사용하고 있기 때문에 result.thats를 전달하고 있기 때문입니다. 어쨌든 여러 체인 링크 활동 (외부 앱 활동)에서 onActivityResult를 얻으려면 그 것이 유용하다는 의미입니다.

참고 : 단일 액티비티가있는 두 개의 앱이 의미하는 경우 하나의 솔루션을 찾았습니다. 제대로 설정된 결과 및 OnactivityResult가 호출 중이며 데이터를 가져 오는 중 하나입니다.하지만 클라이언트 측 앱용 다중 체인 링크 액티비티의 경우 내 시나리오.

이 호에서 나올 수 있도록 도움을주십시오. 감사의 전한

+0

절름발이 질문 : 이후에()'당신의 체인에 연결된 활동 setResult '로 설정 한 후'onActivityResult를()'에서 데이터를 읽고 시도해 봤어? – Shaishav

+0

세 번째 액티비티의 응답을 판매자 앱으로 반환하려는 경우 어쨌든 setResult를 세 번째 액티비티에만 보냈습니다. 여기, 나는 클라이언트 애플 리케이션의 체인 활동에서 전달 데이터를 싶지 않았어. 난 그냥 판매자의 응용 프로그램에 응답 데이터를 보내고 싶습니다. – harikrishnan

+0

그래서 내가이 권리를 얻었는지 알려주세요. 판매자 앱 다음에는 사용자가 세 번째 액티비티로 이동하는 클라이언트 앱이 있으며 판매자 앱으로 보낼 데이터를 생성합니다 (아마도 'setResult()'를 통해) – Shaishav

답변

1

위의 유스 케이스 시나리오를 바탕으로 클라이언트 응용 프로그램이 Fragment 기반 설치를 사용하는 경우 그러한 통신을 허용하는 더 나은 아키텍처가 있다고 생각합니다. 여기에서 판매자 응용 프로그램에서 클라이언트 활동을 시작하고 사용자가 다른 조각으로 이동 한 다음 setResult()을 적합하게 사용할 수 있습니다. 이것은 일대일 활동 결과 설정 동작이므로 작동해야합니다.

시도 할 수있는 또 다른 제안은 사용자가 다른 활동으로 이동하기 때문에 클라이언트 응용 프로그램 내에 조각 방식으로 가고 싶지 않다는 것입니다. 즉시 finish()을 호출 한 다음 setResult() . 이것은 아마 작동하지 않을 것이다, 그러나, 나 [아주] 작은 부분은 그것을 말할지도 모른다 :).

+0

답장을 보내 주셔서 감사합니다. 첫 번째 제안을 위해 전반적인 앱 활동 코드를 조각화 코드로 변경하고 싶습니다. 큰 변화가 있습니다. 그러나 최종 방법은 생각할 것입니다. – harikrishnan

+0

두 번째 하나는 이미 세 번째 활동에서 setResult()로 설정했는데 판매자 앱으로 돌아 왔을 때 해당 onActivityResult()가 성공적으로 호출되었지만 인 텐트 데이터가 null이되고 있습니다 ..이 메서드는 제대로 작동하지 않습니다. .. – harikrishnan

+0

그래, 나는 그것이 작동하지 않을지도 모른다라고 생각했다 :(. – Shaishav

-1

ThirdActivity에서 FirstActivity으로 이동 한 다음 FirstActivityonNewIntent 방법으로 판매자 앱으로 돌아갈 수 있습니다.

세 가지 절차가 모두 완료되면 클라이언트 앱에 다음과 같은 스택이 있어야합니다.

FirstActivity -> SecondActivity -> ThirdActivity 

그리고 ThirdActivity이 스택 맨 위에 있습니다. 귀하의 ThirdActivity 다음 코드 당신의 FirstActivity에서 다음

Intent toFirstIntent = new Intent(this, FirstActivity.class); 
toFirstIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
toFirstIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(toFirstIntent); 
finish(); 

를 사용하여 FirstActivity를 탐색 할 수 있습니다 당신은 데이터를 설정하고 판매자 응용 프로그램에 반환 할 수 있습니다.

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    Intent data = new Intent(); 
    data.putExtra("data", "12345678"); 
    setResult(RESULT_OK, data); 
    finish(); 
}