안드로이드 개발 질문/답변
(글 수 45,052)
간단하게 메모장 위젯 어플을 만들어 보았습니다
위젯 자체는 그냥 텍스트뷰로 만들어져 있고
텍스트뷰에 리스너 달아서 클릭하면 펜딩 인텐트를 사용하여
텍스트를 입력할수 있는 액티비티를 띄웁니다.
그리고 텍스트를 입력하면 브로드캐스트를 통하여 onReceive에서 앱 위젯의 내용을 refresh해줍니다.
여기까진 전부다 잘 만들어 졌어요
근대 문제는
위젯을 여러개 동시에 띄우면
위젯을 클릭했을때 맨 마지막에 띄운 위젯만 클릭이 됩니다
이전에 있던 위젯들은 클릭을 해도 리스너가 안달린것마냥 아무런 반응이 없오요
왜그런지 좀 찾아보니까 위젯은 몇개를 띄우든 동일한 프로세스 하에서 실행되고
onUpdate가 위젯이 실행될때마다 호출되서
이전에 있던 위젯들의 appwidgetId가 전부다 날라가버리는거 같은대요
이런경우엔 어떻게 해야 할까요?
onEnable쪽을 뒤져보고 있는대 답이 안나옵니다 ㅜㅜ
먼저 화면에 나타나 있는 WidgetId와 Widget의 RemoteView는 AppWidgetService에서 관리를 하고 있고, 그냥 사라지거나 하지는 않을 것으로 보여요.
리시버에서 onUpdate가 호출 될 때 AppWidgetId가 넘어오는데, ID를 참조해서 해당 Widget만 처리하도록 되어 있나요?