IntentService和Service执行子线程对比
1.为何要用子程序
服务是在主线程中执行的,直接在服务中执行耗时操作明显不可取,于是安卓官方增加了IntentService类来方便使用
在Service中执行子程序代码如下
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    new Thread(new Runnable() {
    @Override
    public void run() {
        // 处理具体的逻辑
        stopSelf();//需要自行关闭服务
        }
    }).start();
return super.onStartCommand(intent, flags, startId);
}
在IntentService中执行子程序代码如下
/**
 * 用途:用于测试IntentService类服务的特性
 * 特性:1.该服务必须覆盖onHandleIntent方法,该方法在子线程中运行
 *       2.该服务实行结束后会自动关闭,即调用onDestory( )方法
 */
public class MyIntentService extends IntentService {
    public MyIntentService() {
        //1.创建无参数构造函数,调用父类有参构造器
        super("MyIntentService");
    }
    @Override
    protected void onHandleIntent(Intent intent) {
        Log.d(TAG,"线程ID是"+Thread.currentThread().getId());
    }
    @Override
    public void onDestroy() {
        Log.d(TAG,"IntentService关闭了");
        super.onDestroy();
    }
}												
											IntentService和Service执行子线程对比的更多相关文章
- 【转载】Delphi7从子线程中发送消息到主线程触发事件执行
		
在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...
 - Java主线程在子线程执行完毕后再执行
		
一.join() Thread中的join()方法就是同步,它使得线程之间由并行执行变为串行执行. public class MyJoinTest { public static void main( ...
 - [转]QT子线程与主线程的信号槽通信-亲测可用!
		
近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI.所以,网络通信端采用新开线程的方式.在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦.网上提供了很多同一线程不同类间采用信号槽 ...
 - 【Java面试题】30  子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
		
题目如下: 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次 思路如下: 子线程语主线程为互斥,可用SYNCHRONIZED.很容易想 ...
 - Qt自己定义事件实现及子线程向主线程传送事件消息
		
近期在又一次学习Qt的时候,由于要涉及到子线程与主线程传递消息,所以便琢磨了一下.顺便把有用的记录下来,方便自己以后查询及各位同仁的參考! 特此声明,本篇博文主要讲述有用的,也就是直接说明怎么实现,就 ...
 - IntentService用于服务中开启子线程的自动关闭
		
package com.pingyijinren.test; import android.app.IntentService; import android.content.Intent; impo ...
 - Java多线程--让主线程等待子线程执行完毕
		
使用Java多线程编程时经常遇到主线程需要等待子线程执行完成以后才能继续执行,那么接下来介绍一种简单的方式使主线程等待. java.util.concurrent.CountDownLatch 使用c ...
 - Android  ThreadUtil 线程公共类,判断是否在主线程/ 子线程执行 相关操作
		
前言:通常,我们写的公共的模块给别人用,但是这个模块又必须在特定的线程中执行. 比如,一个加载网络图片的的方法,需要在子线程中执行. /** * 加载网络图片 */ private void load ...
 - Java如何等待子线程执行结束
		
工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线 ...
 
随机推荐
- static int a
			
static int a只被本文件可见,外部文件不可见;而int a如果在外部文件作以下声明: extern int a,那么它在声明的文件里也是可见的 详见:http://bbs.csdn.net/ ...
 - DataGridView控件使用大全
			
转自:http://www.cnblogs.com/xiaofengfeng/archive/2011/04/16/2018504.html DataGridView控件 DataGridView是用 ...
 - python 之开发工具 sublimetext 3
			
一.前言 由于个人工作内容太过于繁杂,记忆力又不好,为日后使用的方便,故简单的记录了本篇关于sublimetext 3的初始化安装和部分插件内容的记录.目前最新的版本也是3.0以上版本了,故我这里使用 ...
 - Google Authenticator加强ssh安全
			
一.安装依赖包 软件包可以在这个地址下载:https://pan.baidu.com/s/1r0CmwbtCfNiBqU9rh_TxtA yum -y install pam-devel tar jx ...
 - pta 编程题14 Huffman Codes
			
其它pta数据结构编程题请参见:pta 题目 题目给出一组字母和每个字母的频数,因为哈夫曼编码不唯一,然后给出几组编码,因为哈夫曼编码不唯一,所以让你判断这些编码是否符合是哈夫曼编码的一种. 解题思路 ...
 - 判断一个字符串是否为GUID的方法
			
在.net4.0后出现的TryParse方法可以完成这件事情,至于4.0之前的话,也只能是guid.parse()这个方法加上异常去判断了. 方法具体如下: Guid newGuid = Guid.E ...
 - maven操作手册
			
===Maven的安装=== http://blog.csdn.net/yang5726685/article/details/56486479 ===Maven的jar包仓库地址配置=== http ...
 - 2018.5.30 Oracle数据库PLSQL编程---游标的使用
			
显示游标的步骤 /* 显示游标处理步骤 1.声明游标 语法结构:cursor 游标名称 is SQL 语句; 2.打开游标 语法结构:open游标名称; 3.提取数据 语法结构:fetch 4.关闭游 ...
 - 2018.5.21 . XMLSpy激活的方法
			
127.0.0.1 altova.com #XMLspy 127.0.0.1 www.altova.com #XMLspy 127.0.0.1 link.altova.com #XMLspy 追加加到 ...
 - Java实现随机出题,10道10以内加减法计算
			
package com.swift; import java.awt.Toolkit; import java.util.Scanner; public class PlusQuiz { public ...