首页 > 解决方案 > 问题扩展 BaseActivity() (Kotlin)

问题描述

我正在开发一个应用程序,我需要帮助解决一个奇怪的问题。

我想限制用户截屏和其他东西,我知道我必须使用这行代码:

override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
        super.onCreate(savedInstanceState, persistentState)
        window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
    }

有人告诉我把它放在 BaseActivity() 类的 onCreate() 函数上,但它不起作用。

我所有的活动都扩展了 BaseActivity(),BaseActivity 扩展了 AppCompatActivity()

问题是,如果我将这行代码直接放在活动的 onCreate() 函数上,它可以工作,但如果我把它放在 BaseActivity() 中并扩展它,它就不行。那么,我做错了什么?

我被告知要这样写

 abstract class BaseActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
        window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
        super.onCreate(savedInstanceState, persistentState)
    }
}

但它不适用于 super.Oncreate 上方或下方的标志

编辑:

我正在和我的前辈交谈,他说这是因为我在我拥有的每个 Activity 上都覆盖了 onCreate(),并且它吃掉了继承 onCreate 的 BaseActivity,那么,我该怎么办?

标签: androidkotlin

解决方案


我通过这样做解决了它:

 abstract class BaseActivity : AppCompatActivity() {
     fun safetyOnCreate() =  window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
 }

然后在super.safetyOnCreate()onCreate() 函数中的活动上


推荐阅读