安全卫士第一天笔记

来源:互联网 发布:nba2k16捏脸数据游侠网 编辑:程序博客网 时间:2024/05/20 06:39

好久没有更新博客了,而我并没有放弃学习,放寒假之前急着考试,,,,放假后我回到家,却没网络,所以就暂停了写博客。但我利用寒假的期间将Android基础学完了,跟着老师的视频,把老师的代码重新敲了一遍,虽然学得不是很精,但是基础的知识点还是有了一个了解,四大组件,网络,数据库,UI,自定义组件我还没学,,
今天我开始学习“安全卫士”因为开学了就有网,连夜把视频下载下来,今天趁着有空,学了第一天的课程。敲完了代码……下面我把我做的(我照着老师的笔记做的)笔记,贴出来,供我以后复习的时候用,如果能帮到大家,那便是非常幸运的事。。。。

1、增加阴影效果  android:shadowColor="@android:color/holo_green_light"  android:shadowDx="1"  android:shadowDy="1"  android:shadowRadius="2"2、相对父布局居中对齐  android:layout_centerInParent="true"  更改样式-->改为全屏  将android:theme="@android:style/Theme.Black.NoTitleBar"  中的<item name="windowNoTitle">true</item>属性复制到    android:theme="@style/AppTheme"  中的style.xml文件中去3、获取版本号 private String getVersionCode() {        PackageManager pm = getPackageManager();        try {            PackageInfo info = pm.getPackageInfo(getPackageName(), 0);            String codeVerisonName = info.versionName;            return codeVerisonName;        } catch (PackageManager.NameNotFoundException e) {            e.printStackTrace();        }        return null;    }4、连接服务器获取新版本private void update() {        //在子线程中更新服务器数据        new Thread() {            @Override            public void run() {                try {                    URL url = new URL("xxxx");//设置连接的路径                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();//获取连接操作                    conn.setConnectTimeout(5000);//设置超时时间                    conn.setRequestMethod("GET");//设置连接服务器的方式                    int responseCode = conn.getResponseCode();//设置状态结果码                    if (responseCode == 200) {                        //连接成功                    } else {                        //连接不成功                    }                } catch (Exception e) {                    e.printStackTrace();                }            }        }.start();    } 5、将服务器下载过来的json流信息转换成String类型public class stream {    public static String streamUtils(InputStream in) throws Exception {        //字符流,读取流        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));        //写入流        StringWriter sw = new StringWriter();        //写入流的缓冲        String str = null;        while ((str = bufferedReader.readLine()) != null) {            //写入操作            sw.write(str);        }        sw.close();        bufferedReader.close();        return sw.toString();    }}6、将转换成String类型的json流,进行解析   String streamUtils = stream.streamUtils(strea);   JSONObject json = new JSONObject(streamUtils);   String code = json.getString("code");   String apkurl = json.getString("apkurl");   String des = json.getString("des");   Log.i("---->",code);   Log.i("---->",apkurl);   Log.i("---->",des);7、设置提示更新对话框    [1]首先判断版本号是否一致,不一致则使用message.obtain写上一个标记    然后通过handle.sendmessage(meassge),发送给handle进程更新UI  if (code.equals(getVersionCode())) {                        } else {                            message.what = UPDATE_VERSION;                        }    [2]在handle中更新UI(新建提示对话框)  Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case UPDATE_VERSION:                    showdialog();            }        }    };    private void showdialog() {        AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setCancelable(false);        builder.setTitle("版本号:" + code);        builder.setIcon(R.drawable.ic_launcher);        builder.setMessage(des);        builder.setPositiveButton("升级", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {            }        });        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {            }        });        builder.show();    }8、一些小细节    [1] 按取消按钮后进入主页面    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                dialog.dismiss();                enterHome();            }        });     private void enterHome() {         Intent intent = new Intent(getApplicationContext(), HomeActivity.class);         startActivity(intent);        //进入主界面后再退出,直接退出到桌面        finish();    }    [2] 让弹出的更细提示对话框,稳定出现在两秒之后     int endTime= (int) System.currentTimeMillis();                    //让弹出的更细提示对话框,固定在两秒钟之后                    if(endTime-startTime<2000){                        SystemClock.sleep(2000-(endTime-startTime));                    }                    handler.sendMessage(message);9、下载完成    private void download() {        //使用Xutils第三方jar包实现下载功能        HttpUtils httpUtils=new HttpUtils();        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){            httpUtils.download(apkurl, "mnt/sdcard/app-debug.apk", new RequestCallBack<File>() {                @Override                public void onSuccess(ResponseInfo<File> responseInfo) {                }                @Override                public void onFailure(HttpException e, String s) {                }                @Override                public void onLoading(long total, long current, boolean isUploading) {                    super.onLoading(total, current, isUploading);                    tv_splash_download.setVisibility(View.VISIBLE);                    tv_splash_download.setText(current+"/"+total);                }            });        }    }

我会利用好一切可以利用的时间来学习Android的,但可能做不到每天更新博客的速度,毕竟我还有课,算是对自己有个小小的交代吧。。。。。

1 0
原创粉丝点击