簡體   English   中英

僅當主機活動被破壞時如何從片段調用方法?

[英]How to call method from fragment only if host activity was destroyed?

我在片段中有一個method() 宿主活動中的片段。 因此,僅當主機活動處於onDestroy()時,我才需要從片段中調用method() onDestroy() 也許它應該像一個靜態標志?

class MyActivity:  AppCompatActivity() {
    override fun onDestroy() {
        super.onDestroy()
        val fragment = supportFragmentManager.findFragmentById(R.id.my_fragment) as MyFragment
        if (fragment != null) {
            fragment.myMethod()
        }
    }
}
class MyFragment: Fragment() {
    fun myMethod() {
    }
}

或者使用 ViewModel 來處理活動和片段之間的通信。

https://developer.android.com/topic/libraries/architecture/viewmodel#sharing

您可以通過 SupportFragmentManager,通過布局 ID、標簽或名稱獲取 Fragment。 但這里最重要的是在某些情況下 Activity.onDestroy() 方法永遠不會被調用。 因此,如果您實現需要執行的代碼(例如取消訂閱邏輯或刪除回調),請務必小心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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