我有一些活动可以在这个 lib的帮助下显示图像。问题是应用程序内存不足。我试图 gc.clean(),空引用,在 imageloader 对象上调用 clear,但徒劳无功。
在 MAT 中,我发现我有多个相同活动的对象,如果我没记错的话,这是默认行为。我使用 singleInstance 来抑制多个实例,它有助于解决内存泄漏。
现在,由于 singleInstance,我在导航方面遇到了麻烦。您认为我应该继续使用 singleInstance 还是尝试使用多个实例修复内存泄漏?
这是 ImageView gc 根检查:
升级版:
Bitmap bitmap=null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is=conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f);
return bitmap;
ImageView imageView = (ImageView) convertView;
if(convertView == null){
imageView = new ImageView(_currentActivity);
}
UPD2(导航策略):
我有一个恒定的标题,带有开始家庭活动(带画廊)和个人资料活动的按钮;其次,有一个子标题,它还包含 3 个按钮,这些按钮指向另外 3 个带有列表视图的活动(由图像视图 + 标签组成)。
这些标题、子标题元素可用于应用程序中的每个活动;链接按钮除了:
startActivity(new Intent(getActivity(), MainActivity.class));
或者
Intent activityIntent = new Intent(getActivity(), SomeActivityWithListViewInside.class);
// passing some data like list id
activityIntent.putExtra("list_id", listId);
startActivity(activityIntent);
那么,这些活动实例是由那些 startActivity 调用引起的 - 你认为我应该使用 singleTop 或任何其他意图参数来避免这个问题吗?