마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

인텐트를 사용하지 않고 액티비티간 정보 전달이 가능한가요?

0 추천
전달할 객체는 int값 하나이고 a액티비티에서 b액티비티로 값을 전달'만' 하고 싶습니다만

인터넷을 검색하니 나오는 방법이 전부 인텐트를 사용하더라고요

인텐트를 사용하면 어쩔수없이 startActivity를 사용해야 하는데, 그럼 아예 B액티비티가 위에 떠버려서요

B액티비티를 띄우지 않고 a액티비티에서 b액티비티로 값만 넘기는 방법이 있을지 궁금합니다.

그리고 그렇게 받은 값을 배열화 시키려면 어떻게 해야할지 조언 부탁드립니다ㅠㅠ
바른소리 (330 포인트) 님이 2013년 9월 26일 질문

3개의 답변

0 추천
broadcast 사용하시면 됩니다. a 액티비티에서 sendBroadcast로 intent 날리고 b activity에서 브로드캐스트 리시버 만들어서 받으세요.
Spacebar (1,300 포인트) 님이 2013년 9월 26일 답변
0 추천
액티비티간 통신은 기본적으로 Intent로 보내고 Result로 받는게 원칙입니다.

이것을 벗어나야 하는 필요성이 의문인데 벗어나야 한다면 한가지 고민해야 할 문제가 액티비티는 기본적으로 현재 액티비티만 수행을 보장한다는 것을 잊지 말아야 합니다.

다른 액티비티로 값을 전달한다고 생각하지만 그 액티비티가 살아있는지 죽었는지 알 수 없습니다.

죽으면 어떻게 받을까요?

 

따라서 Intent, Result가 아닌 경우는 매개체를 두고 보내는 액티비티는 매개체로 쓰고, 받는 액티비티는 Resume과 같은 단계에서 매개체를 읽는 형태를 고민해야 할 겁니다.

Broadcast는 올바른 방법이 되긴 힘들 듯 합니다. 액티비티가 살아있는지 죽었는지 알 수 없지요.

 

매개체는 가장 쉽지만 문제가 생길 수도 있는 방식으로 싱글톤이나 Application을 이용하는 형태로 static을 쓰는 거고.

보다 안정적일 수 있는 방법이 기본적으로 sd에 파일저장

보다 안정적일 수 있는 방법이 컨텐츠 프로바이더나 서비스 등을 이용해서 매개체를 구현하면 되지만 점점 복잡해지네요.
익명사용자 님이 2013년 9월 26일 답변
0 추천
sharedpreference를 사용하세요

그리고 서비스가 아닌 이상 액티비티가 실행이되야 뭔가를 할 수 있습니다.
q1212 (26,020 포인트) 님이 2013년 9월 26일 답변
...