안드로이드 개발 질문/답변
(글 수 45,052)
액티비티를 넘기면서 값을 넘기는건
intent 를 사용해서 putExtra(" ", ); 해서 넘기고
startActivity(intent); 하게 되면 값도 넘거 가고 화면도 넘어가는걸 알고 있습니다.
화면은 넘기지 않고 값만 넘겨 주고 싶은데 방법이 없나요??
intent 를 사용해서 putExtra(" ", ); 해서 넘기고
startActivity(intent); 하게 되면 값도 넘거 가고 화면도 넘어가는걸 알고 있습니다.
화면은 넘기지 않고 값만 넘겨 주고 싶은데 방법이 없나요??
2011.03.16 10:59:21
(추천:
1 / 0)
브로드캐스트를 이용하시면 됩니다...
Intent intent = new Intent("hello");
intent.putExtra("value",7);
sendbroadcast(intent); 를 해주면 hello라는 액션으로 방송을 합니다.
그럼 방송을 듣고자 하는쪽(리시버)의 액티비티에서
리시버 등록을 하셔서 hello라는 액션을 캐치 하시면됩니다..
if("hello".equals(intent.getAction())
{
int a = intent.getExtra("value",0);
}
이런식으로요. 리시버에서 액션을 받아서 hello와 일치하면
변수 a에다가 전달받은 값 7을 저장합니다. 이때 값이 제대로 넘어오지 않으면 0이 저장되겠죠.
아시겠지만 putExtra, getExtra는 다양하게 오버로딩되어 있어서 여러가지 자료형을 지원합니다...
아참, 메니페스트에 수신을 하고자 하는 액티비티에서 액션등록을 해주어야 합니다..(혹은 자바 코드에서도 가능 합니다.)
<action android:name="hello"/> 이와 같은 형태로요.
안그럼 방송은 하지만 듣지를 못하는 경우가 생겨요...
브로드캐스트와 리시버에 대해서는 검색해보시면 자료가 많이나와요..




근데 엑티비티가 넘어가면 당연히 화면에 변화가 생기는 것 아닌가요?