文件下载这种事情是很耗时的。之前使用AsyncTask这样的异步类来做下载,然后切到后台就被干掉。所以打算试试Service。(不过按目前那些系统的尿性,其实Service也分分钟被干掉)

不过,这里并不是直接使用Service类,而是使用的是继承自Service的IntentService。
这个东西有三大好处:
1.他有个任务队列;
2.任务队列执行完后会自动停止;
3.他会起一个独立的线程,耗时操作不会影响你app的主线程。
这么自动化的东西简直省心。
话不多说,开始撸代码。
首先,要建个应用,主文件如下(布局什么的代码就不贴了):
package net.codepig.servicedownloaderdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private String _url="http://www.boosj.com/apk/boosjDance.apk";
private EditText urlText;
private Button goBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
goBtn=(Button) findViewById(R.id.goBtn);
urlText=(EditText) findViewById(R.id.urlText);
urlText.setText(_url);
goBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
_url=urlText.getText().toString();
//start download
start_service();
}
});
}
public void start_service(){
//等会再填
}
}