Мне нужно создать личное поле и использовать его без доступа к нему из других классов. Но я не могу создать экземпляр этого в конструкторе.
Я разрабатываю для Android, и проблемное поле screenWakeLocker не может быть создано таким образом:
class MainActivity : AppCompatActivity() {
private val screenWakeLocker: PowerManager.WakeLock =
(getSystemService(Context.POWER_SERVICE) as PowerManager)
.newWakeLock(PowerManager.FULL_WAKE_LOCK, "")
"Системные службы недоступны для Активностей до onCreate ()"
Так что я создаю его в OnCreate:
class MainActivity : AppCompatActivity() {
private var game: Game = Game()
private var screenWakeLocker?: PowerManager.WakeLock;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
screenWakeLocker = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock(PowerManager.FULL_WAKE_LOCK, "")
}
override fun onResume(){
super.onResume()
screenWakeLocker.acquire()
}
и получите ошибку компиляции «Ожидается получение или установка свойства» в?: PowerManager.WakeLock
Как сделать его недоступным для других классов и использовать его?