`
dyingbleed
  • 浏览: 116492 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

【Android】IntentService多线程

阅读更多

IntentService继承自Service,用于异步处理通过startService(Intent intent)方法传递的Intent对象。

该Service根据需要启动

,通过实现onHandleIntent(Intent intent)方法,IntentService会在一个工作线程中,

按顺序处理每个Intent对象,直到当工作执行完毕自动销毁。

 

 

 

实例代码

 

1、启动服务

 

 

Intent intent = new Intent("iteye.dyingbleed.DownloadService");
intent.putExtra("url", url); //添加下载地址
startService(intent);

 

2、配置AndroidManifest

 

3、新建DownloadService类,继承IntentService

 

 

package lizhen.apk;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import android.app.IntentService;
import android.content.Intent;

public class DownloadService extends IntentService {
	
	private ExecutorService pool;

	public DownloadService() {
		super("DownloadService");
	}

	@Override
	public void onCreate() {
		super.onCreate();
		pool = Executors.newCachedThreadPool();
	}

	@Override
	protected void onHandleIntent(Intent intent) {
		String url = intent.getStringExtra("url");
		pool.execute(new DownloadTask(url));
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		pool.shutdown();
	}
	
	private class DownloadTask implements Runnable {
		
		private final String url;
		
		public DownloadTask(String url) {
			this.url = url;
		}

		@Override
		public void run() {
			// TODO 此處省略具體實現
		}
		
	}

}
分享到:
评论
2 楼 dyingbleed 2013-06-06  
kangsoft 写道
IntentService 里貌似不用再创建线程啊。。

Service在单独的一个进程里,这里是展示在Service进程中使用多线程
1 楼 kangsoft 2013-05-03  
IntentService 里貌似不用再创建线程啊。。

相关推荐

    Android中创建多线程管理器实例

    如果你要反复执行一个任务,用不同的数据集(参数不同),但一次只要一个执行(任务是单线程的),...能被多线程访问的变量需要同步块.更多信息,见Processes and Threads(http://developer.android.com/guide/component

    深入剖析Android系统中Service和IntentService的区别

    Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序...

    Android 基于IntentService的文件下载的示例代码

    不过,这里并不是直接使用Service类,而是使用的是继承自Service的IntentService。 这个东西有三大好处: 1.他有个任务队列; 2.任务队列执行完后会自动停止; 3.他会起一个独立的线程,耗时操作不会影响你app的...

    Android锁屏无法继续定位问题

    最近就这个问题,阅读了很多代码以及官方文档,下面就说下最近都尝试过的方式,可能其中有些您实现了,我这边没实现,望见谅。本文采用的高德定位。 一、PowerManager.WakeLock (1)直接强制当前页面cpu运行 ...

    如何正确使用Android线程详解

    多线程编程之所以复杂原因之一在于其并行的特性,人脑的工作方式更符合单线程串行的特点。一个接着一个的处理任务是大脑最舒服的状态,频繁的在任务之间切换会产生“头痛”这类系统异常。人脑的多任务和计算机的多...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    2.2 Android中的多进程模式 36 2.2.1 开启多进程模式 36 2.2.2 多进程模式的运行机制 39 2.3 IPC基础概念介绍 42 2.3.1 Serializable接口 42 2.3.2 Parcelable接口 45 2.3.3 Binder 47 2.4 Android中的IPC...

    精通ANDROID 3(中文版)1/2

    11.1.5 解决多线程问题  11.1.6 有趣的超时  11.1.7 使用HttpURLConnection  11.1.8 使用AndroidHttpClient  11.1.9 使用后台线程(AsyncTask)  11.1.10 使用AsyncTask处理配置更改  11.1.11 使用...

    Android性能优化典范(五)

    文章共有10个段落,涉及的内容有:多线程并发的性能问题,介绍了AsyncTask、HandlerThread、IntentService与ThreadPool分别适合的使用场景以及各自的使用注意事项。这是一篇了解Android多线程编程不可多得的基础文章...

    Android开发艺术探索

     2.2 Android中的多进程模式 / 36  2.2.1 开启多进程模式 / 36  2.2.2 多进程模式的运行机制 / 39  2.3 IPC基础概念介绍 / 42  2.3.1 Serializable接口 / 42  2.3.2 Parcelable接口 / 45  2.3.3 Binder / 47 ...

    精通Android 3 (中文版)2/2

    11.1.5 解决多线程问题  11.1.6 有趣的超时  11.1.7 使用HttpURLConnection  11.1.8 使用AndroidHttpClient  11.1.9 使用后台线程(AsyncTask)  11.1.10 使用AsyncTask处理配置更改  11.1.11 使用...

    Android中实现Runnable接口简单例子

    本课讲的是如何实现一个Runnable,在一个独立线程上运行Runnable....这个类可以自动管理线程和任务队列,甚至可以并行执行多线程。 定义一个实现Runnable接口的类 代码如下: public class PhotoDecodeRunnable implemen

    Asynchronous Android

    介绍android 异步任务不可多得的好书,主要介绍了AsyncTask, handler,looper,loader,IntentService,AlarmManager等

    zxing.java源码解析-StudyRoad:Java&Android开发知识点备忘

    多线程 Thread AsyncTask IntentService HandlerThread ThreadPoolExecutor ​ 多进程 Socket ​ 网络编程 WebView 数据存储技术 ​ 多媒体 音频 视频 摄像头 位置与传感器 位置服务 其它传感器 硬件连接 蓝牙 NFC ...

    Android Service中方法使用详细介绍

    service作为四大组件值得我们的更多的关注 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务。例如,一个从service播放音乐的音乐播放器,应被设置为前台运行,因为用户会明确地...

    Android Service服务详细介绍及使用总结

    service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务总是藏在后台的,...

Global site tag (gtag.js) - Google Analytics