Действия не полностью инициализируются блоком constructor
или, в вашем случае, init
.
Android система инициализирует действия и затем вызывает метод onCreate
. Поэтому вы должны сделать следующее
override fun onCreate(savedInstanceState: Bundle?) {
// create instance of DareDatabaseHelper
}
Почему это не работает с конструктором?
рассмотрите следующий фрагмент кода
var myActivity = MyActivity() // This doesn't start MainActivity
// This is how you start an activity
val intent = Intent(context, MyActivity::class.java)
startActivity(intent)
Когда вы запускаете какое-либо действие, вы никогда не создаете экземпляр класса действия, почему?
Потому что это ответственность android системы, когда вы делаете startActivity(intent)
android система создает экземпляр вашего activity
класса, используя значение по умолчанию constructor
, а затем выполняет всю инициализацию (ie. Предоставляя context
). И как только activity
полностью инициализируется, onCreate
метод вашей активности называется, где вы можете сделать ваш конец инициализации.