我们大多数人都熟悉这种模式:
public class MySingeltone {
public String mSomeReferenceTypeData;
public int mSomeValueTypeData;
private static MySingeltone mInstance;
private MySingeltone() {
}
public static MySingeltone getInstance() {
if (mInstance == null) {
mInstance = new MySingeltone();
}
return mInstance;
}
}
我的问题是我最近发现 mInstance 在使用他的活动被破坏后不等于 null ,或者当整个应用程序假设为子句时,例如:
public class SomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MySingeltone mySingeltone = MySingeltone.getInstance();
mySingeltone.mSomeReferenceTypeData = "some value";
}
}
在关闭运行活动的整个应用程序后(例如 10 秒后)下一次启动“SomeActivity”时,mInstance 仍然保持相同的引用,其字段具有相同的值。
为什么会这样?
我错过了什么?
当android垃圾收集静态成员属于应用程序时?