안드로이드 개발 질문/답변
(글 수 45,052)
내부적으로 Intent를 사용해 같은 액티비티를 계속해서 호출하려고 합니다.
호출 할 때 마다 Intent의 putExtra()를 사용하여 값을 넘겨 주고, 값을 넘겨받은 액티비는 화면에 받아온 값을 뿌려주려고 합니다.
그런데 처음 액티비티를 호출했을때는 넘겨준 값을 화면에 잘 뿌려주는데요, 두번째 넘겨줄때 부터는 화면이 갱신 되지 않습니다.
넘겨준 값을 Log로 찍어봐도 첫번째 값만 찍히고 두번째 값으로 갱신되서 찍히지 않네요.
안드로이드 내부적으로 한번 생성한 액티비티의 인스턴스를 재활용 하기 때문에 화면이 갱신 되지 않을꺼라고 추정 중입니다만 확실치는 않습니다.
그래서 setFlags()를 사용해 뭔가 처리를 해주어야 할 것 같은데 방법을 도통 모르겠습니다.
방법 아시는 분 계신가요?
호출 할 때 마다 Intent의 putExtra()를 사용하여 값을 넘겨 주고, 값을 넘겨받은 액티비는 화면에 받아온 값을 뿌려주려고 합니다.
그런데 처음 액티비티를 호출했을때는 넘겨준 값을 화면에 잘 뿌려주는데요, 두번째 넘겨줄때 부터는 화면이 갱신 되지 않습니다.
넘겨준 값을 Log로 찍어봐도 첫번째 값만 찍히고 두번째 값으로 갱신되서 찍히지 않네요.
안드로이드 내부적으로 한번 생성한 액티비티의 인스턴스를 재활용 하기 때문에 화면이 갱신 되지 않을꺼라고 추정 중입니다만 확실치는 않습니다.
그래서 setFlags()를 사용해 뭔가 처리를 해주어야 할 것 같은데 방법을 도통 모르겠습니다.
방법 아시는 분 계신가요?
2009.10.22 15:24:21
Activity에 onNewIntent를 활용하면 될것 같습니다.
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
2010.12.16 14:21:07
setFlag(Intent.FLAG_ACTIVITY_SINGLE_TOP); 로 인텐트를 세팅하시고
Orion 님 처럼 처리 하시면 기존의 Activity 를 재사용 하면서... 인텐트안의 값을 가져 올수 있더군요~~~