android:第十章,后台的默默劳动者——服务,学习笔记

一、多线程

1)本章首先介绍了安卓的多线程编程,说明在子线程中如果要修改UI,必须通过Handler, Message, MessageQueue, Looper来实现,但是这样毕竟太麻烦了。



 2)然后紧接着就给出了AsyncTask,通过继承这个类,就可以在他的里面直接修改UI元素,方便很多;

二、服务

1)首先给出服务的常规方法,比如创建onCreate、启动onStartCommand、停止onStop、销毁onDestroy;

2)然后说明了Activity和Service之间如何通信,这里要借助一个Binder和ServiceConnection两个抽象类,当然还有Activity中的bindService, unbindService方法,

3)接线来就提出了前台服务的概念了,这个确实现在很多程序都在用,其实实现起来很简单,就是借助于我们在第八章中的系统通知的Notification,然后再调用setForeground(xxxx)来实现;

4)紧接着IntentService出现了;

其实开篇作者就提出了一个问题,不要被后台服务这个名字所迷惑,其实服务默认都是运行在主线程的,所以如果在里面做很耗时的事情的主线程就会很卡,会出现ANR,所以我们还是要考虑使用真正的后台服务,也就是IntentService。

最后作者给出了一个完整的例子,在例子中,作者没有使用IntentService,而是使用Service+AsyncTask的方式,后面我倒是可以考虑使用IntentService来重写一下这个例子。

时间: 2024-08-25 22:20:25

android:第十章,后台的默默劳动者——服务,学习笔记的相关文章

oschina开源中国的Git服务学习笔记

Github虽然流行,但是由于网络原因访问困难,代码的同步速度也很让人纠结. 幸好oschina(开源中国)也提供了安全可靠的git版本服务,今天就来感受(折腾)oschina的git服务. (由于是从有道云笔记直接拷贝过来的,导致图片全部显示不出来,分享连接:http://note.youdao.com/share/?id=97ffdee8693f82b05ec89bd09360fe46&type=note ) 注册oschina https://git.oschina.net/signup

Android攻略--单位转化器UC--Units Converter(学习笔记)

1创建工程 注意这个名称的命名: 3. UC结构及相关代码 UC.java 用于执行单位换算的Activity // UC.java package com.apress.uc; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.w

FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户

基于mysql+PAM的vsftpd虚拟用户配置 一.实验说明 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 所需要的软件包:pam_mysql-0.7RC1.tar.gz 二.安装所需要程序 1.事先安装好开发环境和mysql数据库 # yum -y groupinstall "Development Tools" "Development Libraries" #yum -y install mysql-server

FTP服务学习笔记之ssl/tls安全认证配置(3)

在Redhat5.8_X64bit上配置 一.实验说明 操作系统:Redhat5.8_x64bit 实验平台:VMware Workstation 实验目的:配置ftp基于ssl/tls安全认证 二.实验步骤如下: 1.安装vsftpd #yum install vsftpd #rpm -ql vsftpd #service vsftpd start #chkconfig vsftpd on 2.配置CA #cd /etc/pki/CA #mkdir certs newcerts crl #to

GP服务学习笔记(一)

GP服务发布的几个主要步骤: 1.发布地图服务; 2.新建相关脚本; 3.建立模型调用脚本; 4.在发布地图处理服务;5.对发布的地图处理服务进行测试,通过测试之后才进行开发. 学习过程中遇到的问题及心得: 1.一般通过测试之后的地图处理服务,通过ArcGIS API for JavaScript调用的时候一般不会有问题;所以要首先通过测试,避免浪费开发过程中的调试时间; 2.如果通过outputFeatrue=arcpy.getParemeterAsText(5),获取到的输出要素的格式是Te

FTP服务学习笔记之vsftpd安装和配置(2)

在redhat5部署FTP服务 实验环境介绍: 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 一.基于匿名用户的FTP服务部署 1.匿名FTP 访问匿名的FTP服务器时不需要密码,只需要用户名"ftp"和"anonymous". 2.安装vsftpd软件 #yum install vsftpd #rpm -ql vsftpd 3.启动vsftpd服务 #service vsftpd start #chkconfig vs

app后台管理系统框架metronic的学习笔记

先来看效果: 给出当前页面的代码: <!DOCTYPE html> <!--[if IE 8]> <html lang="zh" class="ie8 no-js"> <![endif]--> <!--[if IE 9]> <html lang="zh" class="ie9 no-js"> <![endif]--> <!--[if !I

在MVC中使用dotless后台动态解析LESSCSS的学习笔记

通过学习LessCSS,我们知道,Less是需要通过编译才能生成 .css 文件,主要使用三种方式进行编译: 1)使用第三方编译工具,在项目发布前编译好放在项目中. 2)在浏览器端解析执行,需要引用 less.js . 3)使用第三方程序集在后台动态解析,例如:在.net平台下的dotless. 这篇随笔记录了如何在.net MVC项目中使用dotless动态解析less. 具体实现 1.创建MVC4 Web的基本项目 在 Content 文件夹中添加 lesses 文件夹,并在该文件夹下添加自

微服务学习笔记(一)

什么是六边形架构 “六边形架构”是 Cockburn大牛在2005年 提出的.该架构提供了一种将业务逻辑和具体输入输出技术分离的模式. 为什么采用微服务 现在大多数开发一个应用,哪怕是类似Uber或者淘宝的应用.基本上都是已单体模式开发.虽然在应用自身架构上采用了模块化设计,但在本质上他还是一个单体应用. 例如:如下图 这样的单体应用不好吗? 上图,是比较经典优秀的单体六边形架构.在很多公司实际上因为各种原因单体应用架构还没有达到这个水平.所以会有以下几个方面问题 1. 整体扩展性差,当应用越来