异步请求 下载

/*网络上请求数据: 申请网络权限 读写存储权限 在manifest里加三行  在strings里设置一下常量
ANR(Application Not Responding)
普通的主线程更新:Activity.runOnUIThread(Runnable),View.post(Runnable),View.postDelayed(Runnable,long)。
AsyncTask 类通常用来在执行后台任务的同时刷新 UI,通过调用execute()方法触发后台任务的执行
,首先会回调 AsyncTask 的onPreExecute(),接着回调doInBackground()来执行自定义的后台任务
,最后回调onPostExecute()方法用来刷新UI。
目的:方便后台线程中操作后更新UI,实现:Thread和Handler进行了封装,实质:Handler异步消息处理机制。
泛型参数 <Params,Progress,Result>
UI操作 onPreExecute预执行 onPostExecute后执行
后台线程操作 doInBackground
输入输出 Params,Result
进度显示 onProgressUpdate
 */

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    public static final int INIT_PROGRESS = 0;
    public static final String APK_URL =
            "http://download.sj.qq.com/upload/connAssitantDownload/upload/MobileAssistant_1.apk";
    public static final String FILE_NAME = "imooc.apk";
    private ProgressBar mProgressBar;
    private Button mDownloadButton;
    private TextView mResultTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化视图
        initView();
        // 设置点击监听
        setListener();
        // 初始化UI数据
        setData();
        //也可以调用封装的方法类
        DownloadHelper.download(APK_URL, "", new DownloadHelper.OnDownloadListener.SimpleDownloadListener() {
            @Override
            public void onSuccess(int code, File file) {

            }

            @Override
            public void onFail(int code, File file, String message) {

            }

            @Override
            public void onStart() {
                super.onStart();
            }

            @Override
            public void onProgress(int progress) {
                super.onProgress(progress);
            }
        });
    }

    private void initView() {

        mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
        mDownloadButton = (Button) findViewById(R.id.button);
        mResultTextView = (TextView) findViewById(R.id.textView);

    }

    private void setListener() {
        //点击事件触发异步下载
        mDownloadButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //实例化自定义异步下载的对象
                DownloadAsyncTask asyncTask = new DownloadAsyncTask();
             
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值