I have a simple case of Activity1 -> Activity2
.
In the past when I've used startActivity(Intent(this, Activity2::class.java))
there have been no issues and the onCreate()
method of Activity2
would be called.
In my current case this is not happening. I have logs in the onCreate()
method and they are never hit. But if I create a onStart()
method it enters there. However, never in my logs for the lifetime of the application does onCreate()
of Activity2
ever get hit. How is this possible. onCreate
is a requirement before onStart
I thought.
Here is the actual code I'm referencing above.
class Activity1 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Timber.d("onCreate")
setContentView(R.layout.activity_splash)
startActivity(Activity2.getIntent(this))
}
}
class Activity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
Timber.d("onCreate") // Never gets touched
}
override fun onStart() {
super.onStart()
Timber.d("onStart"); // Is hit with no problems.
}
companion object {
fun getIntent(@NonNull context: Context) : Intent {
return Intent(context, Activity2::class.java)
}
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…