View的自动刷新和内存泄漏的问题
我做的是一个图表程序,要自动刷新一个大概800x2000的Bitmap
现在的问题是如果我用多线程Timer来刷新的话,在屏幕旋转的时候系统销毁Activity不会回收Bitmap
转两下就内存溢出了,我在网上搜了很多相关的方法,都是片段,放进去都不成功。不知道大家是怎么处理的。
代码如下:
主view 的onCreate
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adptr = new Adapter();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.viewer);
ivData = (ImageView) findViewById(R.id.ivData);
ivFrame = (ImageView) findViewById(R.id.ivFrame);
ivData.setScaleType(ScaleType.MATRIX);
ivFrame.setScaleType(ScaleType.MATRIX);
ivData.setImageBitmap(adptr.mBitmapData);
ivFrame.setImageBitmap(adptr.mBitmapFrame);
ivData.setOnTouchListener(this);
}
其中的Adapter类是用来控制数据的,用timer自动获取数据并且更新mBitmapData和mBitmapFrame
我在网上看到方法都是类似APIDemo里面用重写View的onDraw事件并且加上invalidate()方法
但是APIDemo里面的View都是在新建的View类里面重写onDraw事件,像我这种使用xml布局文件的情况
如何重写某个View的onDraw事件呢?
初学Android和Java,问题太弱智的话大家别见怪