我有一个用于旋转imageview的线程,因为其他事情发生在后台。它非常适合旋转,但我注意到当我打开和关闭它时(基于spinningMain变量)按钮开始旋转得越来越快。 我不确定这是什么原因因为线程被告知每100毫秒睡一觉。 如果它有帮助我也有另一个线程(可运行的线程)运行中间的主代码,我想知道它是否破坏了线程?
imageView更新主题是:
final Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(100);
runOnUiThread(new Runnable() {
@Override
public void run() {
if (spinningMain == true) {
// update TextView here!
if (spinningAngleMain >= 360) {
spinningAngleMain = 0;
} else {
spinningAngleMain += 5;
}
imageButton.setRotation(spinningAngleMain);
}
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
第二个线程几乎按如下方式制作
new Thread(new Runnable() {
@Override
public void run() {
if (searchStateButton == true) {
//do all my stuff
}
我的布尔变量设置为volatile,如果这也有帮助。