至于每个 Android-dummy,我也遇到了FATAL EXCEPTION
java.lang.IllegalThreadStateException: Thread already started
滚动论坛和问题,我看到一个线程无法启动两次。我见过这样的答案:
“不止一次启动线程不是一个好主意。”
“一个线程只能调用一次。”
但是没有人说为什么一个线程只能被调用一次。对我来说这听起来很奇怪,有一个 Android 函数天生只能被调用一次。
为什么一个线程只能调用一次?
我正在开发一个应用程序,每次点击屏幕时我都必须调用动画。我认为 Thread 可能是最适合我的工具。我错了吗?
更新
也许这个问题不清楚。
我不是在问为什么一个线程在它还活着的时候不能重新启动。
我在问为什么我已经运行但现在已经完成的线程(所以它不是活着的)不能被第二次调用。
这是我完全简化的代码。线程第一次被调用,onCreate
第二次被调用onClick
,所以当我点击图像时。在第二次通话中,我可以看到Android Monitor
线程不是活着的,尽管它无论如何都没有启动。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
chiamaDatabase();
RESET.start();
ImageView image = (ImageView) findViewById(R.id.imageView2);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!RESET.isAlive()) {
RESET.start();
}
}
});
}
public Thread RESET = new Thread() {
public void run() {
final ImageView image = (ImageView) findViewById(R.id.imageView2);
Random random = new Random();
int n = random.nextInt(2);
image.setX(320+n);
image.setY(400+n);
}
};