我有一个关于 Android 应用程序的问题。稍后我想创建一个游戏,我目前正在尝试我需要理解的类和函数。目前我试图掌握如何以一种好的方式使用线程,但是当我触摸按钮时,我的应用程序是“强制关闭”。
对于这个测试应用程序,屏幕上只有一个 TextView 和一个按钮。该按钮在按下时正在调用 threadStart()。(onClick in xml)我想要它做的是创建一个线程,将变量值增加1,然后报告给UI线程,然后用新值更新textview。
有人可以看到我在这段小代码中做错了什么吗?
package com.weldeborn.tc;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class ThreadCounter extends Activity {
TextView txtCounter1;
int value=0;
final Handler mHandler = new Handler();
final Runnable mUpdateResults = new Runnable() {
public void run() {
updateResult();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtCounter1 = (TextView) findViewById(R.id.counter1);
}
protected void threadStart() {
Thread t = new Thread() {
public void run() {
doSomething();
mHandler.post(mUpdateResults);
}
};
t.start();
}
private void doSomething() {
value = value+1;
}
private void updateResult() {
txtCounter1.setText(value);
}
}
我的代码基于来自Android 开发人员的示例:常见任务以及如何在“处理 UI 线程中的昂贵操作”标题下执行它们部分。
我很感谢任何帮助。