我正在生成一个无限时间的随机字符串,并将其设置为EditText。
当我不使用runOnUi应用程序时,我正在使用具有较高功能的较新设备。但是当我启动线程并给出错误(从错误的线程异常调用)时,它在较旧的模型上崩溃
然后我使用了runOnUi,但是它使超级慢并强制关闭它。
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
tryPass.setText(getAlphaNumericString());
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
});
thread.start();
最佳答案
您试图通过在UI线程上调用Thread.sleep(2000);
来阻止UI线程。
尝试这种方式:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
runOnUiThread(new Runnable() {
@Override
public void run() {
tryPass.setText(getAlphaNumericString());
}
});
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread.start();