这些选项中哪一个更适合在我的应用程序中使用?
public class NetworkCheck {
Context context;
public NetworkCheck(Context context) {
this.context=context;
}
public boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null;
}
}
...
if(new NetworkCheck(this).isNetworkConnected()){
//statement
}
对于上面的内容,每次我使用它的方法时都必须创建堆内存。当其作用域结束(即大括号结尾)时,堆内存将被销毁...
或者,您可以选择:
public class NetworkCheck {
public static boolean isNetworkConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null;
}
}
...
if(NetworkCheck.isNetworkConnected(){
//statement
}
对于这个,我不需要创建任何堆内存。我读过许多文章,在这些文章中人们说创建静态变量和方法会导致应用程序的内存泄漏。
请帮我创建下面方法中的通用 getLocalData()
方法……
public static <T> void saveLocalData(Context context, String key, T value) {
SharedPreferences prefs = context.getSharedPreferences(
"Qikqrup", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
if (value instanceof String)
editor.putString(key, (String) value);
else if (value instanceof Boolean)
editor.putBoolean(key, (Boolean) value);
else if (value instanceof Integer)
editor.putInt(key, (Integer) value);
editor.commit();
}
T
变量没有意义。只需将参数类型更改为Object
即可。 - Andy Turner