我正在开发一个由Android2.2驱动的tivi框应用程序。我有一个加载屏幕,所有的数据已经下载。数据下载后,它切换到主屏幕。我的主屏幕布局有垃圾收集问题Android
4相对布局是相同的。
当我从gridview移动到ImageButtons,反之亦然,logcat中有很多GC火灾。所以在物品间移动时速度非常慢。
我试图用分配跟踪,并发现它每一次我的项目之间移动的时间投入大量的text.staticLayout。当我在滚动视图中删除2个相关布局时,GC仍然会启动,但动画不太慢。所以我认为我的问题是scrollview。 你能告诉我怎样查找原因GC的很多(指导更有效地使用分配的跟踪器。我读了罗曼盖伊博客2篇关于DDMS和Android的谷歌I/O内存managerment。)
我适配器很简单。我也尝试删除所有applyReflection,自定义字体,所以它只是Item中的getName并设置为TextView。但它仍然缓慢。从this tut
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Clip item = listClip.get(position);
View itemView;
ViewHolder holder;
if(convertView == null){
LayoutInflater inflater = LayoutInflater.from(mContext);
itemView = inflater.inflate(R.layout.griditem_home, null);
holder = new ViewHolder();
holder.icon = (ImageView)itemView.findViewById(R.id.filmIcon);
holder.genre = (TextView)itemView.findViewById(R.id.cliptype);
holder.view = (TextView)itemView.findViewById(R.id.clipview);
holder.name = (TextView)itemView.findViewById(R.id.clipName);
holder.view.setTypeface(myriadRegular);
holder.name.setTypeface(myriadBold);
holder.genre.setTypeface(myriadRegular);
itemView.setTag(holder);
} else {
itemView = convertView;
holder = (ViewHolder) itemView.getTag();
}
holder.icon.setImageBitmap(Utils.applyReflection(bitmap));
holder.name.setText(item.getName());
holder.view.setText("Number of view: "+item.getNumberView());
holder.genre.setText(item.getTypename());
return itemView;
}
class ViewHolder {
ImageView icon;
TextView name, genre, view;
}
感谢applyReflection类的帮助。我是新的Android
难道我只是简单地扩展我的课堂从你betteractivity,不是吗?并保持我的当前代码在onCreate? – 2012-01-03 08:45:14
是的,就是这样。让我知道它是否有帮助! :) – swinefeaster 2012-01-03 10:17:35