며칠동안 연구를 해봤는데 태스크 킬러랑 앱위젯 연동은 불가능 하다는 결론이 났습니다.
물론 제가 경험이 짧고 식견이 부족해서 틀릴 수도 있습니다. 그래서 여러분들의 의견을 얻고자
이 글을 쓰게 됐습니다.

서비스를 구현하면서 태스크 킬러와의 연동문제가 가장 골치가 아팠는데
위젯을 바탕화면에 띄워서 토글 형식으로 켜졌을 때와 꺼졌을때 서로 다른 아이콘을 표시하도록 만들었는데
태스크킬러에 의해 서비스가 강제 종료되는 경우 서비스가 죽어버렸음에도 위젯 아이콘은 여전히 켜진상태의
아이콘이 유지됐습니다.

이 문제를 해결하고 싶어서 책도 찾아보고 인터넷도 뒤져봤는데
최종적으로는 명쾌한 해답을 얻을 수가 없었습니다.

우선 서비스의 onStart 와 onDestroy 메서드에서 각각 다른 인텐트를 발생시켜서 인텐트를 받을 경우
아이콘이 변하도록 구현을 했는데요.
태스크 매니져에 의해 프로세스가 죽을 경우엔 서비스에서 onDestroy 함수가 호출이 되지가 않는 것 같더군요.

그리고 제 앱과 마찬가지로 기본 음악 어플도 음악이 재생중엔 위젯에 일시정지 버튼이 표시되고 음악이 정지되면
재생 버튼이 표시되는데 태스크 매니져에 의해 프로세스를 종료시키면 음악이 안나와도 일시정지 버튼이 나와있는 것으로 봐선
이 부분에 대한 구현방법은 현재로선 없다고 봐도 무방할 것 같습니다.

그런데 찜찜한게 태스크매니져가 어떤식으로 다른 프로세스들을 죽이는지
(killProcess 메소드를 호출하는 것 같긴 하지만...) 명확히 규명을 하지 못했기 때문에
혹시나 다른 방법이 있을까 하는 생각이 들었습니다.

앞서 밝혔듯이 그냥 저만의 생각이기 때문에 혹시 제가 모르거나 잘못 생각한 부분이 있으면
과감히 지적해 주시기 바랍니다. 독학중이라 어디 물어볼데가 없어서 너무 답답합니다. ㅠㅠ


profile

초보 개발자 입니다.