`

android基础(1)

阅读更多
/**以下内容主要来源于android-sdk-windows/docs**/

进程和线程
    android的UI是非线程安全的,所以不能在工作线程中访问UI对象,两个简单的原则:
1.不要阻塞UI线程
2.不要在除UI线程外的线程中直接访问UI对象

在工作线程中访问UI对象的方法:


例子:
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();  
}


推荐的方法是使用AsyncTask
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {  
    /** The system calls this to perform work in a worker thread and 
      * delivers it the parameters given to AsyncTask.execute() */  
    protected Bitmap doInBackground(String... urls) {  
        return loadImageFromNetwork(urls[0]);  
    }  
      
    /** The system calls this to perform work in the UI thread and delivers 
      * the result from doInBackground() */  
    protected void onPostExecute(Bitmap result) {  
        mImageView.setImageBitmap(result);  
    }  
}  
  
//在工作线程中调用  
new DownloadImageTask().execute("http://example.com/image.png"); 


在services和content provider中的方法通常要线程安全
分享到:
评论

相关推荐

    Android基础教程PPT

    这篇“Android基础教程PPT”旨在引导初学者了解如何使用Eclipse环境进行Android应用开发。首先,我们从创建或导入Android工程开始。 要开启一个新的Android工程,你需要在Eclipse中选择[File]-&gt;[New]-&gt;[Project],...

    Android零基础教程视频链接

    android基础教程,里边包括新版Android开发教程&笔记1--基础入门,Android开发教程&笔记2--基础入门二,Android开发教程&笔记3--环境搭建与解析,Android开发教程&笔记4--Dalvik ADB Android开发教程+笔记5--模拟器...

    Android基础-02

    在Android基础的学习中,"Android基础-02"这一主题主要涵盖了Android开发的基本概念和核心组件,这些都是构建Android应用程序的基础。下面将详细讲解这些知识点。 首先,Android是一种基于Linux内核的操作系统,...

    android复习题题库

    Android复习题题库 ...这个文件中涵盖了Java基础、Java面向对象编程、Java异常处理、Android基础、Java数学运算、Java逻辑运算和Android数据存储等多个知识点,为Android开发提供了广泛的知识支持。

    Android基础教程4

    **Android基础教程4** 在Android开发的学习过程中,基础教程4主要涵盖了Android开发的多个关键方面,包括用户界面设计、文件存取、数据库编程、应用程序管理、权限控制以及资源管理等核心概念。以下是对这些主题的...

    Android 基础教程 第三版 PDF 含源码

    《Android基础教程 第三版》是一本针对初学者和进阶开发者的重要参考资料,全面覆盖了Android应用开发的基础知识。此版本的PDF版本以其高质量的文本和包含源码的特点,为学习者提供了便捷的学习途径。书中的内容围绕...

    Android基础与应用开发教程

    Android基础与应用开发教程 Android基础与应用开发教程

    Android高手进阶教程与Android基础教程

    Android读写XML(上)——package说明.doc Android读写XML(下)——创建XML文档.doc Android读写XML(中)——SAX.doc Android高手进阶教程之----Android Handler的使用!...Android基础教程之----五大布局对象.doc

    Android基础知识详解【PDF文档】

    在介绍Android的基础知识时,首先需要了解其系统架构。Android采用了分层的设计,从上到下依次分为应用程序层、应用程序框架层、Android运行时和库、Linux内核四个层次。各个层次承担着不同的功能,保证了整个系统的...

    20151228-Android基础视频day07-day11源码

    这些资料主要涵盖的是Android开发的基础教程,源自2015年12月28日传智播客官网上金老师的课程。在这个系列中,学员可以通过day07到day11的源码学习Android应用程序开发的基本概念和技术。让我们逐一探讨这些知识点。...

    Android基础教程 第3版 修订版

    《Android基础教程 第3版 修订版》是学习Android开发的重要参考资料,针对初学者和有一定经验的开发者都具有很高的参考价值。本教程深入浅出地介绍了Android开发的基础知识,包括环境搭建、应用结构、UI设计、数据...

    android基础控件使用

    以下是一些主要的Android基础控件及其使用方法的详细说明: 1. **按钮(Button)** - `Button`控件用于实现点击事件,用户可以触发某种操作。可以通过`setOnClickListener`设置监听器,如: ```java Button button...

    Android基础教程+源码

    **Android基础教程** Android是一种基于Linux内核的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。这个基础教程旨在帮助初学者理解Android开发的基本概念和技术。教程可能涵盖了以下几个核心主题: 1....

    Android基础开发与实践

    Android基础开发与实践

    Android基础教程

    Andro,Android基础教程Android基础教程Android基础教程id基础教程

    Android基础笔记

    Android 基础笔记 Android 基础笔记是 Android 开发的入门知识点总结,涵盖了 Android 开发的基础知识点,从 Android 发展史到自定义 ContentProvider 的实现。 一、Android 发展史 Android 的发展史可以追溯到 ...

    Android基础入门教程

    Android基础入门教程,网上教程,打包成chm,看得时候方便一些 教程于2015年7月开始撰写,耗时半年,总共148节,涵盖了Android基础入门的大部分知识。

    Android 基础教程(第3版) 源代码

    1. **环境搭建**:介绍如何安装Android Studio,设置开发环境,包括JDK、Android SDK、AVD Manager等,以及如何创建第一个“Hello, World”项目。 2. **Android应用程序结构**:解释Android应用的基本组成,如...

    android 基础教程(第三版)配套源码

    《Android基础教程(第三版)》是一本深受开发者欢迎的指南,它涵盖了Android开发的核心概念和技术,旨在帮助初学者和有经验的开发者更好地理解和实践Android应用开发。这本书的配套源码提供了丰富的实例,使得读者...

    十道ANDROID基础知识面试题

    以下是对标题和描述中提到的Android基础知识的详细解析: 1. **Handler**:Handler是Android中的消息处理机制,用于在主线程中处理来自其他线程的消息。它通常与Looper和Message配合使用,实现异步消息传递,避免...

Global site tag (gtag.js) - Google Analytics