摘要: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())。
參考: