[英]Issue extending 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)
}
然后在 onCreate() 函數中的活動只是super.safetyOnCreate()
將這些標志放在您的基本活動中像這樣的super.onCreate
語句之上
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)
super.onCreate(savedInstanceState, persistentState)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.