安全卫士第一天笔记
来源:互联网 发布: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
- 安全卫士第一天笔记
- 手机安全卫士第一天
- Android 安全卫士 第一天
- 手机安全卫士第一天
- 安全卫士第八天笔记
- 安全卫士第九天笔记
- Anroid 安全卫士第一天_注意事项
- 第一天:听课笔记
- 第一天笔记
- java 第一天笔记
- 老师笔记--第一天
- HTML第一天笔记
- oracle第一天笔记
- opencv 笔记第一天
- MFC第一天笔记
- bootstrap笔记第一天
- Struts2 笔记第一天
- 黑马第一天笔记
- 静态代理模式
- swift基本语法(总结提炼版)之009 swift 之字符串
- 1047. 编程团体赛
- 进程管理
- db link的使用
- 安全卫士第一天笔记
- Mysql安装
- Objective-C中字符串(NSString和NSMutableString)常用的方法
- css3 skew变形
- Android development Notes-3(Activity, Intents, and Tasks, Service, Content provider)
- Android中检测当前是否为主线程
- 关于visual studio 2013生成exe文件找不到问题
- <LeetCode OJ> 35. Search Insert Position
- Spring之依赖注入