android - 线程和处理程序

标签 android multithreading service android-activity handler

我的问题是 ThreadHandler 有什么区别

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/

相关文章:

java - 关于服务类的几个问题

javascript - 使用服务传递数据的 undefined variable

android - 将数据从线程服务传递到 Activity

android - 如何实现Android TvView

asp.net - 使用 System.Threading.ThreadPool 时没有内容的电子邮件

Android NDK 段错误

ios - 异步下载图像而不阻塞 UI

android - 在 LooperThread 中获取处理程序返回 null

android - 如何将文本转语音输出存储为 WAV 文件?

android - 重新签名已签名的应用程序