0

내 안드로이드 앱은 Activities이 많습니다.
현재 Activity을 새로 시작할 때마다 Finish()으로 전화를 걸고 있습니다.Android에서 활동 간 전환 및 객체 전달

내 이전 버튼은 완전히 파괴되었으며 사용자가 뒤로 버튼을 누르면 이전 활동을 마치고 이전 활동의 새로운 Intent을 시작합니다.

활동을 시작할 때마다 OnCreate을 실행해야하므로 내 앱이 매우 느려집니다.

이전 활동을 끝내지 않으면 이전 활동을 어떻게 끝내지 않고 호출 할 수 있습니까? 사용자는 동일한 활동을 여러 번 열어 둡니다.

또한 활동간에 전환 할 때 .PutExtra()을 사용하고 싶습니다.

그래서 기본적으로
Intent intent = new Intent (this, typeof(AddNewActivity)); 
var json = JsonConvert.SerializeObject (myDataObject); 
intent.PutExtra ("myDataObject", json); 
StartActivity (intent); 
Finish(); 

, 내 질문에 내가 어떻게 할 때마다 새로운 Activity를 시작할 수 없습니다 여전히 두 개 이상의 활동 사이에 데이터를 전달할 수 있습니다 :

이 내가 지금 뭐하는 거지 무엇인가?

감사합니다.

답변

1

간단한 해결책은 새로운 활동에 갈 때마다 단순히 "finish()"를 호출하지 않는 것입니다. 이 방법을 사용하면 뒤로 버튼을 통해 이전 활동의 기존 인스턴스로 돌아갑니다. 따라서 onCreate 및 시간 소모적 인 작업을 우회 할 수 있습니다.

데이터 전달 : 인 텐트를 사용하십시오. 새로운 액티비티를 시작할 때 startActivityForResult를 호출하십시오. 이렇게하면 다음을 수행 할 수 있습니다.

  • 의도로 새 활동에 데이터를 전달하십시오.
  • 새 활동이 완료되면 원래 활동으로 데이터를 다시 전달합니다.

참조 : http://developer.android.com/training/basics/intents/result.html

+0

내가 그 개념을 이해하지만, 사용자가 다시 눌러 작업을 수행 할 때, 나는 그것으로 일부 데이터를 보내려고합니다. 그게 가능하니? 그게 내 주요 질문 이었어. 예를 들어 json 객체를 어떻게 보낼 수 있습니까? –

+0

질문이 업데이트되었습니다. startActivityForResult를 사용하면 활동간에 데이터를 전달할 수 있습니다 (물론 의도를 사용). – EJK

+0

이것은 매우 유망 해 보입니다. 나는 그것을 시도 할 것이다. 감사합니다 –