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

안드로이드 액티비티관련 질문 (액티비티유지하며 데이터 받기)

0 추천

서버 좌표를 주고받으며 상대방의 좌표를 지도에 찍어주는 어플을 만들어보고 있습니다.

 

지도액티비티 열려있는 상태이고, 좌표는 BroadcastReceiver에서 받습니다. 좌표를 받고,  지도액티비티로 전달해줘야 합니다.

리시버에서는 아래와 같이 데이터를 보내줍니다.

Intent ai = new Intent(mContext,activity.class);								
ai.putExtra("operation", 좌표값);
	
		ai.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
mContext.startActivity(ai);

 

그리고 지도액티비티에서는 OnNewIntent메소드를 오버라이드하고, 아래와 같이 좌표를 받습니다.

if(intent.hasExtra("operation"){

String temp = intent.getStringExtra("operation");

}

 

 

근데 문제가있네요... 좌표를 받아올때마다 액티비티를 다시 생성해서 그런것인지...

지도액티비티를 열어놓은 상태에서 카톡이 왔습니다. 그래서 알림창을 열어 카톡을 확인하려하는도중에, 좌표가 전송되어오고, startActivity가 되면서 카톡을 덮어버리네요..

 

이에 대한 해결책이 필요할것 같은데... 초보라서 도저히 감이 잡히지 않습니다.ㅠ

 

조언 부탁드립니다! 

 

감사합니다. 

블랙이요블랙 (12,860 포인트) 님이 2013년 3월 21일 질문

2개의 답변

+1 추천
 
채택된 답변

지도 액티비티를 매번 인텐트 시켜서 OnNewIntent에서 받지 마시고

지도 액티비티에서 좌표 변할 때 날라오는 BR을 직접 받으시거나

구조상 직접 받는게 불가능하면, 좌표 변한 거 받는 리시버에서 로컬BR 날려주시고

그 로컬BR 받아서 처리하시면 되겠죠.

 

b22n (22,940 포인트) 님이 2013년 3월 22일 답변
블랙이요블랙님이 2013년 3월 22일 채택됨
답변감사합니다~~ 그렇게 처리하는게 좋을것 같네요~
+1 추천
액티비티는 그대로 하나만 두시고

값만 넘겨서 받아오시는걸로 변경하시는걸 추천드리고 싶습니다.
건방진프로그래머 (26,630 포인트) 님이 2013년 3월 21일 답변
그.. 방법을 모르겠습니다 ㅠㅠ 좀 더 자세히 알려주시면 안될까요~?
지도액티비티에서 좌표만 받아서 그려주는 함수나 실행체가 없는건가요?
그냥 지도 액티비티라고해서 잘모르겠습니다만.... 구글맵같은거 쓰셔다면
가능할텐데여
답변 감사합니다~ 제가 초보라서.. 자세히 말씀해주시지 않으면 이해를 잘 못해요 ㅠㅠ 네이버지도API  사용하고 있습니다~
...