2010-02-26 8 views
3

활동에서 서비스를 시작할 때 어떤 이유가 될 수 있는지 알면 누구나 에뮬레이터에 "해당 활동이 응답하지 않습니다."라는 메시지가 표시됩니다.Android 서비스에서 활동이 응답하지 않습니다.

내 서비스에서는 몇 가지 작업을 수행하기 위해 2 개의 스레드를 시작합니다. 이것이 문제의 원인 일 수 있습니까?

답변

3

사람이 내가 활동에서 서비스를 시작할 때의 이유 수 있습니다 알고

덕분에, 에뮬레이터는 메시지 표시 "활동이 응답하지 않습니다를?"

응용 프로그램의 활동, 서비스 등이 응용 프로그램 스레드를 묶어두기 때문에.

내 서비스에서는 주문에 2 개의 스레드를 시작하여 일부 작업을 수행합니다. 문제의 원인이 일 수 있습니까?

하지 직접, 아니, 당신이 정말로 AsyncTask를 사용하기보다는

는 주 응용 프로그램 스레드에서 작업을 장기 실행 이렇게 자신의 스레드를 분기 또는 sleep() 또는 바쁜 루프와 함께 묶는 고려해야하지만 이 예외가 발생합니다.

+0

안녕하세요, 이제 서비스의 모든 스레드가 제거되었지만 문제가 계속 발생합니다. 내 서비스가 외부 API에 연결하여 API에서 데이터를 가져옵니다. 백그라운드에서이 작업을 수행합니다. 서비스를 시작하면 내 활동에 "응답 없음"이라는 메시지가 표시됩니다. 서비스가 주 앱을 연결하지 않기 때문에 (내가 스레드가 없음) 문제가 될 수 있는지 알 수 없습니다. – xger86x

+0

"내 서비스가 외부 API에 연결되어 데이터를 가져옵니다." - AsyncTask 또는 백그라운드 스레드에서 수행해야합니다. "서비스가 주요 앱을 묶지 않기 때문에"그렇습니다. "나는 스레드가 없습니다"- 그건 당신의 문제입니다. "문제가 될 수있는 것이 무엇인지 모릅니다"- 기본적으로 수행하는 작업은 기본 응용 프로그램 스레드에 있습니다. 활동은 기본 응용 프로그램 스레드에서 실행됩니다. 서비스는 기본 응용 프로그램 스레드에서 실행됩니다. 느린 "외부 API"호출을 AsyncTask로 가져옵니다. 예를 보려면 http://github.com/commonsguy/cw-android/tree/master/Service/WeatherPlus/를 참조하십시오. – CommonsWare

+0

오케이. 나는 그것을 시험해보고 효과가 있는지 말해 줄 것이다. 고마워 – xger86x

관련 문제