我已經構建了一個包含幾個android服務變量的單例實用類。我這樣做是爲了避免每次在類中使用方法時都需要傳入'Context'參考。將保持對服務的引用會導致任何問題?Android服務類變量
public class ConnectivityUtil {
// TODO: 5/24/2017 Is keeping a service as a member variable a good ida?
private static ConnectivityUtil instance;
private final ConnectivityManager connectivityManager;
private final WifiManager wifiManager;
private ConnectivityUtil(Context context) {
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
wifiManager = (WifiManager) context.getApplicationContext()
.getSystemService(Context.WIFI_SERVICE);
}
public static void init(Context context) {
instance = new ConnectivityUtil(context);
}
public static ConnectivityUtil getInstance() {
return instance;
}
...
}
請記住,它會一直保留到您的整個過程被銷燬。只要你的應用程序運行,就認爲它是活着的。 –
也見:https://stackoverflow.com/questions/15054416/is-it-beneficial-to-keep-a-member-reference-to-system-services-in-android –