我正在使用 thread.sleep(100) 连续调用方法 doSomething()。这发生在 UIThread 上,因此 UIthread 变得无响应。在 Android 中,在单独的线程中运行方法 doSomething() 或整个 someobject 的正确方法是什么?
public void loop(){
while(true){
someObject.doSomething();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
现在我正在使用
new Thread(new Runnable() {
@Override
public void run() {
someObject.doSomething();
}
}).start();
这显然为每次迭代创建了一个不同的线程。我认为这不是正确的方法。 Android 中的正确方法是什么?
最佳答案
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
someObject.doSomething();
}
}
}).start();
因为运行永远不会返回,所以线程永远不会结束并且会永远循环。它会大约每 100 毫秒调用一次 doSomething(尽可能接近 sleep ,这并不准确)。
关于android - 在自己的线程中运行连续调用方法的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533934/