是context.getSystemService()
昂貴的電話?context.getSystemService()是一個昂貴的調用嗎?
I.e.我建立了一個小的http網絡庫(我知道還有其他的http網絡庫可用),它使用ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
來檢查(在執行http請求之前)用戶是否連接到互聯網(某種失敗的快速策略)。
我的問題是我應該將ConnectivityManager
保存爲我的http庫的實例變量(類字段)還是每次在我啓動一個http請求以檢索「新」ConnectivityManager之前調用ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
?每次我呼叫getSystemService(Context.CONNECTIVITY_SERVICE)
時都會返回相同的ConnectivityManager實例(換句話說,可以將ConnectivityManger存儲到類字段中導致問題,因爲我的http庫是長期活的 - >只要應用程序運行,就會生存)