zoukankan      html  css  js  c++  java
  • Android Service VS AsyncTask VS Thread

    这三种方式的设计目的是不同的。

    Service: 适用于在后台长期持续运行的动作,如:播放音乐,查看网络数据。注意,在开发文档中,service本身是在UI线程中,所以所需的操作应该创建一个新的线程来完成工作。

    AsyncTask:主要用于防止阻塞UI线程的一次性/短暂动作。例如:点击button后获取网络数据,这里AsyncTask比较合适。因为受到数据后动作完成结束。而用service也可以完成工作,但是随后要关闭service,时低效的。

    Thread:就是通常意义的线程,注意在线程中不能更新UI。因为UI框架本身是非线程安全的。但android提供了如下方法更新UI。

    eg:

    public void onClick(View v) {
        new Thread(new Runnable() {
            public void run() {
                final Bitmap bitmap = loadImageFromNetwork("http://example.com/image.png");
                mImageView.post(new Runnable() {
                    public void run() {
                        mImageView.setImageBitmap(bitmap);
                    }
                });
            }
        }).start();
    }

    详见官方文档:http://developer.android.com/guide/components/processes-and-threads.html
  • 相关阅读:
    HDU
    HYSBZ
    HDU
    POJ
    HDU
    HDU
    HDU
    「luogu2680」[NOIp2015] 运输计划
    「luogu1417」烹调方案
    网络(最大)流初步+二分图初步 (浅谈EK,Dinic, Hungarian method:]
  • 原文地址:https://www.cnblogs.com/stephen-init/p/4076198.html
Copyright © 2011-2022 走看看