Mee*_*tat 1 multithreading android
我正在使用 thread.sleep(100) 连续调用 methode doSomething()。这发生在 UIThread 上,因此 UIthread 变得无响应。在 Android 中,在单独的线程中运行方法 doSomething() 或整个 someobject 的正确方法是什么?
public void loop(){
while(true){
someObject.doSomething();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我正在使用
new Thread(new Runnable() {
@Override
public void run() {
someObject.doSomething();
}
}).start();
Run Code Online (Sandbox Code Playgroud)
这显然为每次迭代创建了一个不同的线程。我不认为这是正确的方法。Android中的正确方法是什么?
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
someObject.doSomething();
}
}
}).start();
Run Code Online (Sandbox Code Playgroud)
由于 run 永远不会返回,线程永远不会结束并且将永远循环。它将大约每 100 毫秒调用一次 doSomething(尽可能接近 sleep,这并不准确)。
| 归档时间: |
|
| 查看次数: |
7022 次 |
| 最近记录: |