如果一個(gè)變量劣砍,既是靜態(tài)變量对粪,而且是非靜態(tài)的內(nèi)部類對(duì)象仿吞,那么就會(huì)造成內(nèi)存泄漏:
public class LeakActivity extends AppCompatActivity {
private static Hello sHello;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leak);
sHello = new Hello();
}
public class Hello {}
}
這里定義的 Hello 雖然是空的缰犁,但它是一個(gè)非靜態(tài)的內(nèi)部類淳地,所以它必然會(huì)持有外部類即 LeakActivity.this 引用,導(dǎo)致 sHello 這個(gè)靜態(tài)變量一直持有這個(gè) Activity帅容,于是結(jié)果就和第一個(gè)例子一樣颇象,Activity 無(wú)法被回收。