2018-06-24 Kotlin写的activity显示空白

  • 问题背景
    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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面试必背 会舍弃、总结概括——根据我这些年面试和看面试题搜集过来的知识点汇总而来 建议根据我的写的面试应对思路中的...
    luoyangzk阅读 6,878评论 6 173
  • 在前面的文章里我们知道了 Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片...
    常思行阅读 1,001评论 1 1
  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 3,865评论 3 18
  • 那些日子 ——星空若辰 那些日子, 站在四楼眺望, 听着新歌,眼中充满迷茫和...
    星空若辰阅读 208评论 0 0
  • 自《伪装者》后,开始钟迷“有一种大哥,叫明楼”。 前几日,半夜看了几集《鬼吹灯之精绝古城》,本来奔着山东籍“老干部...
    谷子陈阅读 321评论 0 0