簡體   English   中英

問題擴展 BaseActivity() (Kotlin)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM