У меня есть приложение с Service
. Эта служба запускает рабочий Thread
, и этот поток нуждается в указателе на экземпляр службы (он вызывает некоторые методы этой службы).
Теперь я просто передаю указатель this
из метода Service
onCreate()
в свой собственный конструктор Runnable
, но он работает правильно, пока я не закрою свое приложение. Когда приложение перезапускается, с указателями что-то становится не так. Я до сих пор не могу понять, что именно не так, но похоже, что указатель на мой экземпляр Service - это указатель на странный другой экземпляр Service, и указатель на мой Runnable
тоже неверен.
Если я убью мое приложение, то в следующий раз оно будет работать правильно, но после перезапуска будут возникать те же проблемы.
Я подозреваю, что я не могу передать указатель this
из метода onCreate()
Сервиса, но тогда как я могу получить указатель на экземпляр моего Сервиса из потока, который начинается с метода onCreate()
?
ОБНОВЛЕНИЕ : Я только что понял, что у меня точно такой же одиночный выпуск . Runnable
был синглтоном. Но я до сих пор не могу найти хорошего решения, кроме как вообще не использовать синглтоны в Android. Может быть, есть предложения?