Android通过AIDL实现下载进程通信
2012-11-08 19:04:01 来源:WEB开发网该aidl文件定义了通信双方使用的接口,通过这些接口客户端就可以调用服务端的实现
package com.obatu.services.aidl;
import com.obatu.services.aidl.Queue;
import java.util.List;
interface IDownLoadService{
void down(in Queue queue); //添加一个队列到下载服务中
boolean isDownLoading(in int id); //查询某个队列是否正在下载
void cancelQueue(in int id); //取消某个队列
List<Queue> getQueueList(); //获取下载服务中的队列列表,通过该列表可以获取到当前下载列表的信息,如下载进度
}
android 下载服务DownLoadService的实现
该类实现的是下载的业务逻辑
package com.obatu.services;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.obatu.services.aidl.IDownLoadService;
import com.obatu.services.aidl.Queue;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.util.Log;
import android.widget.RemoteViews;
public class DownLoadService extends Service {
private static final String TAG = "Obatu_DownLoad_Service"; //Log tag
private final static int UPDATE_NOTIFY_PROGRESS = 3; //handler 标识:更新进度
更多精彩
赞助商链接