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

Activity 간에 객체를 전달해야하는데 문제가 있습니다

0 추천
안녕하세요

mainActivity 에서 하나의 객체를 가지고있고 버튼을 통해 subActivity 를 띄우면 subActivity 에서 mainActivity 에 있는

객체 멤버값을 바꾸거나 그것의 함수를 불러다 쓰고 싶은데요

Serializable 이나 Parcelable 을 이용해 무슨 객체를 넘기는 방법을 찾았는데 Serializable 를 impelement 하고

putExtra 로 넘겨주어도 앱이 죽습니다 검색결과 Socket 을 transient 으로 바꿔줘도 마찬가지 입니다

넘겨야 할 객체에는 Socket 1개가 객체 생성과 동시에 연결되고 데이터 recv 를 위한 쓰레드 하나가 돌아가는 구조구요

다른 멤버값들은 String 이나 integer 인데요

Thread 변수 나 Socket 변수를 가진 객체는 넘겨줄수 없는건가요?

어떤 방법이 없을까해서 이렇게 질문드립니다 ㅠㅠ
숭늉 (540 포인트) 님이 2015년 2월 27일 질문

2개의 답변

+1 추천
 
채택된 답변
그냥 전역 변수로 잡고 쓰면 될 것 같은데요. 그 이상의 기술을 필요로 한다고 보여지지 않습니다.
익명사용자 님이 2015년 2월 27일 답변
숭늉님이 2015년 2월 27일 채택됨
제가 안드로이드가 처음이라 extern 같은게있으면 좋겠다 생각은 했는데 그런방법이 있나보군요 그것도 알아보겠습니다 감사합니다 ㅠ
안드로이드에서 전역변수는 사용하지 않는 것이 좋습니다.
Socket 등 외부 리소스와 연관된 것은 더욱 그렇습니다.
어렵군요..방법을 모르니 막혀서 진행이 안되고 있습니다
더 정확하게는 주 액티비티에 static변수면 되겠죠. (더 고급으로는 singleton으로.)
어차피 전역 변수 쓰지말라는 말에 겁먹는 정도로는 어차피 기본기가 없는 분이시니 그냥 전역으로 놓고 만드세요. 당장 하고 싶은것을 하는데 아무런 문제 없습니다.
전역이든 extern(아마 c말하는 것 같은데 이것도 아주 옛날에 쪼금 해본 정도에 불과한듯)이든 이런 개념을 이해하고 있으면 이미 이런 질문을 하지 않았을 겁니다.
지금은 그냥 전역으로 해도 문제 없습니다. 질문의 수준이나..타인이 부정하는 말만듣고 이도 저도 못하고 있는걸봐선...어차피 개발쪽에서 희망을 볼 수가 없는데 개발 말고 다른 일을 빨리 알아보시는게 나을 것 같습니다만.. 매년 지잡대부터 카이스트의 컴퓨터 공학과 및 전산과에서 교육 과정을 거쳐 쏟아져나오는 두뇌들이 수천명이고, 정보 물류학과 처럼 전산 수업을 하는 학과를 치면 수만명에 달하는 인력이 매년 쏟아져 나오는데, 이 정도 질문은 각각 1학년때 떼는 수준입니다. 시중의 아무 프로그래밍 책만 봐도 알수있고...진로를 다시 고민해보시는게 낫지 싶습니다. 경쟁이 되질 않습니다.
장문의 조언 감사합니다 잘알겠습니다
이런 답변은 왜하셔서 커뮤니티를 더럽히시나요.. 누가 질문이나 하겠습니까? 진짜 저질이네..
0 추천
Service를 쓰세요.
익명사용자 님이 2015년 2월 27일 답변
답변감사합니다 검색중에 Service 도 보았는데 문제는 쓰레드가 아니라 상태를 나타내는 객체 멤버의 값을 바꿔주고 그래야하는데 그런것도 Service 로 가능한가요..
이해를 잘못 하셨군요.
Socket, Thread 등을 모두 Service로 옮기면 해당 객체를 주고 받을 필요가 없어집니다.
감사합니다 한번 검색해서 알아보겠습니다
...