我在我的应用程序中使用hashset,我试图看看如何避免泄漏内存,我使用如下所示在onActivityResult中填写,然后当用户点击按钮我只是处理那里的内容然后完成活动。
据我所知,内存泄漏在这里是不可能的,因为hashSet不是静态的,所以一旦Activity完成,任何东西都将指向HashSet,当GC启动时它将是免费的这个假设是正确的吗?
public class TestActivity extends Activity {
HashSet<String> hashSet = new HashSet<String>();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//process what's in the hashset
//do I need to do something like hashSet.clear()
//or something else like setting the hashSet to null?
//then exit
finish();
}
});
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SOME_RETURN_CODE) {
hashSet.add(some string);
}
}
}
答案 0 :(得分:0)
is this assumption correct?
是的,你的假设是正确的。该活动不应该有任何内存泄漏,因为它不包含任何无法处理或垃圾收集的引用