首页 分享 Android编程实战

Android编程实战

来源:花匠小妙招 时间:2024-12-21 06:32

最新推荐文章于 2024-01-26 07:00:00 发布

Flaygo 于 2014-08-27 13:20:06 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

一. 代码组织结构. 两种方式.

1. 按照业务逻辑 组织代码.      

    会议         com.swust.metting
    财务         com.swust.money
    人员管理     com.swust.manage

2. 按照代码的类型组织包结构.    

   界面         com.swust.mobilesafe.activities
   自定义控件   com.swust.mobilesafe.ui
   业务逻辑     com.swust.mobilesafe.engine
   工具类                          .utils
   服务                            .service
   广播接受者                      .receiver
   持久化  .db

3.界面效果

   

    

二.PackageManager 获取应用程序的清单文件的信息

private String getVersion() {

PackageManager pm = getPackageManager();

try {

PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);

return packageInfo.versionName;

} catch (NameNotFoundException e) {

e.printStackTrace();

return "";

}

}


三.使用URL HttpUrlConntion 获取网络信息,通过pull解析器  解析XML 

1.线程类run方法

private class CheckVersionTask implements Runnable {

private Message msg = Message.obtain();

private long startTime = System.currentTimeMillis();

@Override

public void run() {

try {

URL url = new URL(getResources().getString(R.string.path));

HttpURLConnection conn = (HttpURLConnection) url

.openConnection();

conn.setConnectTimeout(5000);

conn.setRequestMethod("GET");

int code = conn.getResponseCode();

if (code == 200) {

InputStream in = conn.getInputStream();

updateinfo = UpdateInfoPaser.getUpdateInfo(in);

if (updateinfo == null) {

msg.what = PASER_ERROR;

} else {

msg.what = PASER_SUCCESS;

}

} else {

msg.what = SERVER_ERROR;

}

} catch (MalformedURLException e) {

e.printStackTrace();

msg.what = URL_ERROR;

} catch (IOException e) {

e.printStackTrace();

msg.what = IO_ERROR;

} finally {

long endTime = System.currentTimeMillis();

long dTime = endTime -startTime;

if(dTime<2000){

try {

Thread.sleep(2000-dTime);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

handler.sendMessage(msg);

}

}

}

2.创建业务逻辑类来解析xml

public class UpdateInfoPaser {

public static UpdateInfo getUpdateInfo(InputStream in) {

XmlPullParser parser = Xml.newPullParser();

try {

parser.setInput(in, "UTF-8");

int type = parser.getEventType();

UpdateInfo info = new UpdateInfo();

while (type != XmlPullParser.END_DOCUMENT) {

switch (type) {

case XmlPullParser.START_TAG:

if ("version".equals(parser.getName())) {

info.setVersion(parser.nextText());

} else if ("description".equals(parser.getName())) {

info.setDescription(parser.nextText());

} else if ("path".equals(parser.getName())) {

info.setApkPath(parser.nextText());

}

相关知识

揭秘Vue.js异步编程精髓:原理图解析与实战技巧全解析
Android 移动应用基础教程(Android Studio)(第2版)学习笔记及源码
Android Studio 实战演练—小猴子摘桃
Android移动应用开发教程①
成都五月花劳动职业技能培训学校
Android进阶之路
区块链原生工程师(iOS、Android)(长沙)
移动商务应用开发
移动应用开发的艺术与实践:从新手到专家
Python GUI编程实战

网址: Android编程实战 https://www.huajiangbk.com/newsview1212930.html

所属分类:花卉
上一篇: Android APK反编译就这
下一篇: Android Drawable

推荐分享