在活动中控制服务的实现。
在服务里实现下载功能
第一步:在服务类中添加如下代码:
private DownloadBinder mBinder = new DownloadBinder();
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
class DownloadBinder extends Binder{
public void startDownload(String url){
//实现开始下载逻辑
}
public void pauseDownload(){
//实现暂停下载逻辑
}
public void cancelDownload(){
//实现取消下载逻辑
}
}
第二步:在活动中添加代码
private DownloadService.DownloadBinder downloadBinder;
private ServiceConnection connection = new ServiceConnection() {
@Override
//活动与服务绑定成功时调用
public void onServiceConnected(ComponentName componentName, IBinder service) {
downloadBinder = (DownloadService.DownloadBinder) service;
}
@Override
//活动与服务解除绑定时调用
public void onServiceDisconnected(ComponentName componentName) {
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, DownloadService.class);
startService(intent);//启动服务
bindService(intent, connection, BIND_AUTO_CREATE);//绑定服务
}
@Override
//活动结束后解除绑定
protected void onDestroy() {
super.onDestroy();
unbindService(connection);
}