【发布时间】:2020-02-27 06:10:59
【问题描述】:
我有一个简单的Activity1 -> Activity2 案例。
过去当我使用startActivity(Intent(this, Activity2::class.java)) 时没有任何问题,并且会调用Activity2 的onCreate() 方法。
在我目前的情况下,这没有发生。我在onCreate() 方法中有日志,它们永远不会被击中。但是如果我创建一个onStart() 方法,它就会进入那里。但是,在我的应用程序生命周期的日志中,onCreate() 的 Activity2 从未受到打击。这怎么可能。 onCreate 是 onStart 之前的要求。
这是我上面引用的实际代码。
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)
}
}
}
【问题讨论】: