3

내가 알기 론 AsyncTaskActivity 안에 넣으면 사용자가 Activity을 종료 할 때 작업이 종료 될 수 있습니다. 내가 본 한 가지 해결책은 IntentService을 사용하는 것인데,이 시스템은 죽이지 않도록 노력할 것입니다.IntentService와 동일한 우선 순위를 가진 작업자 스레드가 두 개 이상입니까?

내 문제는 IntentService은 하나의 백그라운드 스레드 만 사용하여 모든 작업을 하나씩 실행한다는 것입니다. 나는 동시에 실행하고자하는 몇 가지 독립적 인 작업을 가지고 있으며, 이는 UI의 차이를 만든다 (심각한 것은 아니지만 사용자를 놀라게 할 수있다).

어떻게해야합니까? 내가 여러 IntentService 가질 수 있다고 상상하지만 어색하고 확장 할 수없는 것 같습니다. 좋은 우선 순위를 가진 일종의 스레드 풀을 유지 관리하면 시스템에서 쉽게 죽지 않게 할 수 있습니까?

(정상) Service을 시작한 다음 거기에 AsyncTask 개를 실행하면 우선 순위가 더 높아 집니까?

감사합니다.

답변

1

나는 그것이 내가 당신에게 말해주고 싶은 것이 아니라고 확신하지만 배경에서이 많은 것들을 실행하지 않도록 디자인을 재고해야 할 수도 있습니다. 이것은 물론 당신이 정확히 무엇을 성취하려고하는지에 달려 있습니다. 따라서 정확하게 백그라운드에서 무엇을하고 있는지에 대해 자세히 설명하십시오.

질문의 후반부입니다. 서비스를 시작하고 거기에서 AsyncTask을 실행해도 더 높은 우선 순위가 발생하지 않습니다. 이것은 AsyncTask가 UI 스레드에서 시작되어야하기 때문입니다 (활동 또는 서비스 수준에서 실행되는 경우와 동일).

여러 네트워킹 스레드를 실행하는 경우, 실제로 나쁜 실행을 중지하고 많은 배터리 전력을 낭비하십시오. 한 번에 하나씩 실행하는 것이 좋습니다.

관련 문제