- 问题背景
Kotlin
写的activity
如下
class NewTestActivity : Activity(){
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.activity_test)
}
}
layout
里面也是有内容的,但是运行的时候activity
显示的是空白的。经过排查,问题出在了onCreate()
方法上面,改成如下就完美解决问题了。
class NewTestActivity : Activity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
}
}
看出区别了吧。以为在用Android Studio
写重载方法的时候,习惯用快捷键生成重载方法,所以看到onCreate()
方法直接使用了上面那一个,导致activity
空白的问题。
- 扩展阅读
那么上面那个带两个参数的onCreate()
是什么意思呢?我去查了一下源码
* Same as {@link #onCreate(android.os.Bundle)} but called for those activities created with
* the attribute {@link android.R.attr#persistableMode} set to
* <code>persistAcrossReboots</code>.
这个方法和调用onCreate
一个参数的方法一样的,只是被那些已经创建过并且将persistableMode
设置为persistAcrossReboots的activtiy调用。想要进一步了解的可以去查看官方文档persistableMode
网友评论