当前位置: 代码迷 >> Android >> ondraw函数被继续不断的调用。
  详细解决方案

ondraw函数被继续不断的调用。

热度:48   发布时间:2016-04-28 06:02:07.0
ondraw函数被持续不断的调用。。。
部分代码:
MyView1.java

public class MyView1 extends View {
int a=0;
protected void onDraw(Canvas canvas) {
//do something
CpuActivity.tv_BlackNumbers1.setText(""+a);
System.out.println("test");
super.onDraw(canvas);
}}


CpuActivity.java

public class CpuActivity extends Activity {
View MyView;
static TextView tv1, tv_BlackNumbers1
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cpu);
MyView = (MyView1) findViewById(R.id.MyView1);
tv_BlackNumbers1 = (TextView) findViewById(R.id.tv_BlackNumbers1);}}


基本代码就是这样子
运行后什么都不做,logcat里就持续不断的输出test。。。
我试过把CpuActivity.tv_BlackNumbers1.setText(""+a);改成CpuActivity.tv_BlackNumbers1.setText(“”);就不会出现那样的情况了
实在想不明白其中的原因。我只是想在自定义的view(MyView1)里对CpuActivity.java的一个textView进行settext而已。为何会这样??
------解决方案--------------------
onDraw是每次界面刷新都会调用到,如果连着USB,电池充电是会刷新电池图标的
建议拔掉usb使用tcpadb进行logcat尝试
------解决方案--------------------
protected void onDraw(Canvas canvas) {
//do something
if(b)
{
CpuActivity.tv_BlackNumbers1.setText(""+a);
System.out.println("test");
        super.onDraw(canvas);
}
else
{
     //do nothing
}
}}