我的问题是 Thread
和 Handler
有什么区别
Q1)在1)Activity 2)Service中使用它们有什么作用
Q2)他们在生命周期方面有什么区别 我正在为他们使用以下代码。
1) --------------------------
final Handler handler = new Handler();
Runnable runnable = new Runnable()
{
public void run()
{
// do somthing
handler.postDelayed(this, 1000);
}
};
runnable.run();
2) --------------------------
handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
}
};
new Thread(new Runnable()
{
public void run()
{
while(true)
{
try
{
Thread.sleep(1000);
handler.sendEmptyMessage(0);
} catch (InterruptedException e) {}
}
}
}).start();
最佳答案
处理程序: handler 用于做looper 事情。即执行相同的任务次数。 处理程序可以在主线程上执行。
关于处理程序,如果它在服务中使用,如果电话状态更改为 sleep ,它可能会停止。 如果在 Activity 中使用,您可以通过处理程序更新 UI。
主题: 线程用于与 Activity 的主线程分开的事物。
线程始终在后台运行,即使手机状态变为 sleep 模式也是如此。 你 不能更新 UI 因为它没有在主线程上运行。它可以使用 asynctask 完成,而不是使用简单的 java 线程。
关于android - 线程和处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16870057/