避免在静态字段中持有Activity的引用,可以使用弱引用,或者将需要使用Activity的代码放到Activity的内部类或方法中。示例代码:
public class MyActivity extends Activity {
// 静态引用Activity会导致内存泄漏,可以使用弱引用来解决
private static WeakReference mActivityReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 将Activity的引用传递给静态字段
mActivityReference = new WeakReference<>(this);
}
// 将需要使用Activity的代码放到内部类或方法中
private void doSomethingWithActivity() {
MyActivity activity = mActivityReference.get();
if (activity != null) {
// do something with activity
}
}
}