介面類IPresenter
public interface IPresenter extends Serializable {
void tip(Context context, String msg);
}實作類MyPresenter
public class MyPresenter implements IPresenter {
@Override
public void tip(Context context, String msg) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
}A頁面序列化MyPresenter通過intent.putExtra傳遞到B頁面
Intent intent = new Intent(this, BActivity.class);
intent.putExtra(INTENT_KEY_PRESENTER, new MyPresenter());
B頁面通過getSerializableExtra拿到IPresenter參考,呼叫tip
IPresenter presenter = (IPresenter) getIntent().getSerializableExtra(INTENT_KEY_PRESENTER);
presenter.tip(BActivity.this,"message");
請問這個流程會導致context記憶體泄漏嗎?(leakCanary檢測沒有泄漏)
uj5u.com熱心網友回復:
沒有泄露,但你這樣沒有意義,序列化的只有資料,如果沒有資料的傳遞你這樣只為調一個沒有關聯的方法沒有什么意義uj5u.com熱心網友回復:
序列化只適用于集合類、基本資料型別、字串和其他簡單類。像context這種非常復雜而龐大的類基本上會序列化失敗,并且就算成功但物件已經不一樣了,并沒有了其實際意義,使用序列化過的context基本上會崩潰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/88464.html
標籤:Android
下一篇:求助,android模擬器綠色版
