Android Context

摘要:Context是屬於Android系統的一個系統組件,維持Android程序中各個組件相互聯繫的核心類。包含系統資源等的使用。




問題描述:

1)應用數據上傳後進行打印,打印接口需要傳遞context;

2)場景:A、B、C三個Acitivity,C中已經給打印接口setContext(C.this); 打印會啓動一個Service; 此時界面也要進行切換,C切到B;

3)報錯:java.lang.RuntimeException: Main thread not allowed to quit. 應用異常退出。


問題分析:

1)C中已經給打印接口setContext(C.this)。這時set進去的是當前C的Context;

2)打印的Service中接收的是C的Context。調用Service後,C就finish了,所以context也就銷燬。而此時Service還在後臺運行;

3)應用的context是唯一的,因爲Application是單例。


解決方案:

C進行setContext(C.this)改爲setContext(getApplicationContext())。


參考:

1、Android Context完全解析

發佈了31 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章