안녕하세요. IOS 개발자인데 안드로이드를 해야되는 상황이 생겨서 프로젝트 생성해서 해보고 있습니다.
Activity간 상호 데이터 전송하는데 도저히 이해가 되지 않아 질문드립니다.
예를 들어MainActivity -> SecondActivity를 호출하고
ScondActivity에서 이미지를 로드해서 MainActivity로 이미지를 다시 보내고 싶은데
안드로이드는 어떤 방식으로 전달하는지 궁굼합니다.
보통 데이터를 ActivityResultLauncher Callback 으로 받는 걸로 알고 있는데 String, int, Array 정도만 되는거 같고
이미지 같은 용량이 큰 데이터나 Object 타입은 못보내더라구요.
이런경우 어떤식으로 전달하는지 궁굼합니다.
IOS 하고 너무 Activity 상호 전달 방식이 너무 달라서 아무리 찾아도 방법을 모르겠네요... ㅜㅜ
링크와 같이 bundle 에 넣어 주고 받을 수 있습니다.
또 다른 방법으로는 storage 에 저장하시고 intent 에 uri 를 넣어서 보내시면 됩니다.
이것저것 해보다가 제약사항이 좀 있어서 application 상속받아서 싱글톤으로 생성후 context 넘겨받아서 bridge 역할로 사용하는걸로 했습니다. 리스너 연결하니 나름 사용하기 괜찮네요.
안드로이드가 좀 답답한 면이 있는가 같은 느낌이네요. ㅠㅠ
Bundle 전체의 용량 제한도 있고 해서 정석적인 방법은 아닙니다.
MainActivity에서 ActivityResultLauncher 로 SecondActivity 를 호출해주고.
SecondActivity 에서는 finish() 하기전에 로그한 이미지를 File 로 write 하고 그 URI 정보를 데이터로 반환하시면 됩니다.
(그 Path 를 String으로)
그리고 다시 돌려받은 ActivityResultLauncher callback 에서 파일로 접근 하시면 됩니다.