【发布时间】:2020-05-24 19:37:22
【问题描述】:
我有一个像这样的PrefUtils 类:
public class PrefUtils {
public PrefUtils() {
}
private static SharedPreferences getSharedPreferences(Context context) {
return context.getSharedPreferences("APP_PREF", Context.MODE_PRIVATE);
}
public static void storeAccessToken(Context context, String access_token) {
SharedPreferences.Editor editor = getSharedPreferences(context).edit();
editor.putString("Access_Token", access_token);
editor.commit();
}
public static String getAccessToken(Context context) {
return getSharedPreferences(context).getString("Access_Token", null);
}
}
在我的MainActivity 中,我有一个静态方法,我应该为它使用一个静态上下文:
public class MainActivity extends AppCompatActivity {
private static Context mcontex;
// Is It right To Add Context To static Variable???
@SuppressLint("CheckResult")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
my_method();
}
public static void my_method(){
String access_token =PrefUtils.getAccessToken(mcontex);
// more code ...
}
}
给静态变量加Context对吗? Android Studio 说:“不要将 Android Context 类放在静态字段中”。 这会导致像内存泄漏这样的错误吗?如果答案是肯定的,那么正确的方法是什么?
【问题讨论】:
标签: android memory-leaks android-context