【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 此處省略具體實現
		}
		
	}

}

你可能感兴趣的:(IntentService)