android - 问题扩展 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,那么,我该怎么办?
解决方案
我通过这样做解决了它:
abstract class BaseActivity : AppCompatActivity() {
fun safetyOnCreate() = window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
}
然后在super.safetyOnCreate()
onCreate() 函数中的活动上
推荐阅读
- h2db - H2DB混合模式,客户端获取空查询
- javascript - 从 Javascript 的下拉菜单中访问值?
- windows - Windows 10 入口点 x64 的寄存器值
- swift - 导航栏按钮在单击时不起作用
- java - 如何使用 vlcj 版本 4.7.0 制作 headlessMediaPlayer 以进行音频流式传输?
- http - 使用 python 请求库输出原始查询字符串
- python - 动态嵌套循环 Python
- java - 如果类有其他依赖项,则在运行时编译 java 文件
- c++ - 从 qt 的 qtextedit 对象中的 spdlog 获取日志
- java - Java 中的自动柜员机 (ATM) 实现