博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
My code review
阅读量:4975 次
发布时间:2019-06-12

本文共 4237 字,大约阅读时间需要 14 分钟。

源代码如下

package com.example.asynctask;import android.app.ProgressDialog;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class MainActivity extends AppCompatActivity {     Button button;     ImageView imageView;     ProgressDialog progressDialog;     String IMAGE_PATH="http://image.baidu.com/search/redirect?tn=redirect&word=j&juid=51AEAB&sign=cibzwikaba&url=http%3A%2F%2Flife.northnews.cn%2F2015%2F0515%2F1927051_20.shtml&objurl=http%3A%2F%2Fupload.northnews.cn%2F2015%2F0515%2F1431655212431.jpg";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button) findViewById(R.id.button);        imageView = (ImageView) findViewById(R.id.image);        progressDialog = new ProgressDialog(MainActivity.this);        progressDialog.setTitle("提示信息");        progressDialog.setCancelable(false);        progressDialog.setMessage("正在下载中,请稍后。。。");        progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                new MyAsyncTask().execute(IMAGE_PATH); }        }) ;    }    public class MyAsyncTask extends AsyncTask
{ @Override protected void onPreExecute() {
super.onPreExecute(); progressDialog.show(); } @Override protected byte[] doInBackground(String... strings) { byte[] image = new byte[]{}; HttpURLConnection connection = null; InputStream inputStream = null; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); Log.i("test"," ===== "); try { URL url = new URL(strings[0]); connection = (HttpURLConnection) url.openConnection(); if (connection.getResponseCode()==200){ file_length = connection.getContentLength(); long totle_length = 0; int length = 0; byte[] data = new byte[1024]; inputStream = connection.getInputStream(); while (-1 !=(length = inputStream.read(data))){ totle_length += length; byteArrayOutputStream.write(data,0,length); int progress = ((int)(totle_length*100/(float)file_length)); publishProgress(progress); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } Log.i("test","-----"); image = byteArrayOutputStream.toByteArray(); inputStream.close(); byteArrayOutputStream.close(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { connection.disconnect(); }return image; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); progressDialog.setProgress(values[0]);} @Override protected void onPostExecute(byte[] bytes) { super.onPostExecute(bytes); Bitmap bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length); imageView.setImageBitmap(bitmap); progressDialog.dismiss(); } }}

存在的问题:

1.不是所有代码都简单易懂 ,代码的变量名没有注意到,有的可能没加

2.不太符合编程规范。大括号的位置有的随意乱放,只要没有出现错误就行。基本没有注释   

3.可能存在多余的代码  

4.代码没有尽可能的模块化 

转载于:https://www.cnblogs.com/LT1997/p/6605346.html

你可能感兴趣的文章
[BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
查看>>
裁剪图片
查看>>
数据结构实习 problem L 由二叉树的中序层序重建二叉树
查看>>
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>
设置PL/SQL 快捷键
查看>>
个人阅读作业7
查看>>
转载:深入浅出Zookeeper
查看>>
GMA Round 1 新程序
查看>>
node anyproxy ssi简易支持
查看>>
编译预处理指令:文件包含指令、宏定义指令、条件编译指令
查看>>
PHP函数 ------ ctype_alnum
查看>>
网站安全
查看>>
WS-Addressing 初探
查看>>
.NET+模块编排+数据库操作类的封装+分层架构+实体类+Ajax.net+Athem.NET+javascript+Activex组件+用户权限等...
查看>>
Markdown不常见功能
查看>>
(二)NUnit单元测试心得
查看>>
hdu_2604Queuing(快速幂矩阵)
查看>>
frame.bounds和center
查看>>
HDU 1102 Constructing Roads
查看>>