簡體   English   中英

內存泄漏時的android MVP模式

[英]android MVP pattern on memory leak

目前,我正在使用帶有Contract的android上的MVP模式。 因此,在示例中,我的交互器是這樣的:

interface MainInteractor {
    interface Activity {
        //function here
    }

    interface Presenter {
        //function here
    }
}

我的Presenter類包含這樣的內容

class MainPresenter(
    var activity : MainInteractor.Activity
) : MainInteractor.Presenter {

    //interface function that calls API (async)
    fun callNetwork() {
        //code here 
    }
}

從某種意義上講,我想知道如果調用網絡尚未完成但活動已被破壞,則這種模式是否會導致內存泄漏。 我知道對於AsyncTask,弱引用將用於避免內存泄漏。 這里是否一樣? 如果確實導致內存泄漏,除了弱引用外,還有其他任何方法可以修復它。

您可以將方法attachdetach 在attach中,您可以初始化某些內容,在detach中,您可以完成某些內容。 例如,您可以為活動合約接口變量設置null,並在調用方法之前在所有回調中設置是否為null。

AsyncTask的情況與您的情況不同。 使用AsyncTask時,我們在View或Activity鏈接內部進行了傳遞,這意味着在旋轉以前的活動/視圖后銷毀了,但是異步任務具有舊鏈接並且GC無法清除內存。

暫無
暫無

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

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