Задать вопрос

Почему не останавливается процесс сервиса?

Имеется "пустое" приложение, главное активити с кнопками "Запустить" и "Остановить" сервис через startService/stopService. Сам сервис тоже "пустой", при старте возвращает START_NOT_STICKY. Запускается в отдельном процессе .

public class TestService extends Service {
	@Override
	public void onCreate() {
		super.onCreate();
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		return START_NOT_STICKY;
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
	}

	@Nullable
	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}
}


<service
		android:name=".TestService"
		android:process=":service"
		android:exported="false">
	</service>


При остановке, как и положено, вызывается onDestroy, но на мониторе процесс продолжает жить, а память не выгружается, периодически возникает в нём какая-то незначительная <0.5% процессорная активность.

Когда-то изучал сервисы и делал такой же пример, и точно помню, что процесс моментально убивался по stopService. Сейчас же я не понимаю, почему такое поведение. Проверял на андроиде 4.4 и 6.0.
  • Вопрос задан
  • 403 просмотра
Подписаться 1 Оценить 6 комментариев
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Могу предположить, что это Empty process: https://developer.android.com/guide/components/pro...
+ядро даёт процессу квант времени, как всем, я думаю.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@coden55
Попробуйте
@Override
  public void onDestroy() {
    super.onDestroy();
stopself();
  }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы