В документации по службам Android говорится: «Другой компонент приложения может запустить службу, и он будет продолжать работать в фоновом режиме, даже если пользователь переключится на другое приложение».Возвращает ли из onStopCommand услугу Android?
Давайте предположим, что Android службы порождает нить или AsyncTask в onStartCommand:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//asyncrhonous call-1
new SomeAsyncTask().execute();
//asynchronous call-2
new Thread(new Runnable(){//some runnable}).start();
//shouldn't service terminate here?
return Service.START_NOT_STICKY;
}
В приведенном выше коде, onStartCommand
оператор возврата сразу же столкнулся, так как два заявления, прежде чем он асинхронно. Должна ли служба прекратить работу до того, как потоки, порожденные здесь, завершат их выполнение? Что делать, если они не демона?
Кроме того, поскольку службы (слегка запутанные в IntentService) выполняются в потоке пользовательского интерфейса, нам необходимо выполнить сетевые операции в отдельном потоке. Следовательно, часто может потребоваться создание асинтак или разных потоков. Может ли кто-нибудь помочь мне в понимании выполнения службы и если служба «продолжает работать в фоновом режиме»? Затем, вернувшись из onStartCommand, что он «запускает»?
«Служба остановлена либо сама по себе вызывает stopSelf(), либо кто-то другой вызывает stopService()». Остановить его таким образом завершает работу не-демона, который он создал? – rahulserver
@rahulserver: Это зависит от того, кто «это». Темы, созданные кодом фреймворка Android, являются обязанностью кода фреймворка Android, поэтому фоновый поток, созданный «IntentService», будет остановлен, когда «IntentService» будет остановлен. Тема, созданная * you * * ваша * ответственность - код фреймворка Android ничего о них не знает. – CommonsWare
«фоновый поток, созданный IntentService», это означает поток, который мы «явно» кодируем в одном из методов жизненного цикла IntentService или создаем неявно с помощью android os (рабочий поток)? – rahulserver