2009-11-28 8 views
0

Android에서 백그라운드 서비스를 실행하기 위해 IntentService 클래스를 확장하려고합니다. 부팅 후 서비스가 즉시 시작됩니다. 이 서비스의 사용자 입력 상자를 정기적으로 팝업하고 싶습니다. 그래서 서비스에서 Activity를 호출하려고 시도했지만 도움이되지 않습니다. Force Close라는 두려운 상자가 나타나고 서비스가 종료됩니다. 아무도 백그라운드 서비스에서 활동을 호출하는 몇 가지 방법을 제안 할 수 있습니까?Android - 서비스의 활동?

감사합니다.

+1

LogCat을 사용하여 강제 닫기 상자가 나타나는 원인을 확인하려고 시도한 적이 있습니까? –

답변

2

이 서비스는 주기적으로 에서 사용자 입력 상자를 팝업하고 싶습니다.

이 계획을 재고하십시오. Notification을 사용하십시오. 사용자가 감사 할 것입니다.

EDIT : 명확히하기 위해 전경에서 당신의 활동없이 비동기 적으로 "사용자 입력 상자를 팝업"하려고합니다. 그렇다면 위대한 UI 패턴이 아닙니다. 사용자가 텍스트 메시지를 입력하는 도중에 팝업 창이 뜨면 쉽게 짜증을 낼 수 있습니다.

따라서 Activity를 에서 호출하려고 시도했지만 도움이되지 않습니다. 강제 닫기의 두려워진 상자 이 나타나고 서비스가 종료됩니다.

UI 스레드에서 으로 전화하십시오. aforlorney가 제안한대로 도움이되지 않으면 adb logcat, DDMS 또는 Eclipse의 DDMS 퍼스펙티브를 통해 LogCat을 점검하여 예외의 Java 스택 추적을 얻으십시오.

+0

+1 Mark의 포인트는 여기에 있습니다. 나도 안드로이드 워드 프로세서에서 이것을 읽었던 것을 기억한다. 100 회 중 99 회는 사용자가 여가 시간에 참석할 수있는 알림을 팝업으로 표시하려고합니다. – Konklone

1

이것은 답과 직접적인 관련이 없습니다 (commonsware.com에서는 이미 문제를 해결하는 방법에 대한 개요를 이미 제공했습니다). 다만 팁이 있습니다. 코드를 간헐적으로 실행하는 백그라운드 서비스가있는 경우, 당신은 AlarmManager를 사용하여 무기한으로 머물러 있지 않고 스스로 깨어나게해야합니다. 기본적으로 서비스를 시작하고 자체를 호출하는 PendingIntent를 만든 다음 필요한 경우 스스로 깨우십시오.