android 软件apk自动更新实现注意点!!
1,解析xml时的NetWorkOnMainThread问题
代码:这里要注意的点就是在访问服务器网络时,不能将InputStream直接返回,因为若直接返回给主线程操作,很可能子线程的InputStream还在获取字节流,这时候就会导致这个UI线程访问网络异常,所以不能直接返回这个InputStream,直接在子线程里
操作这个输入流,然后将操作的结果返回。
private class AsyncTask_ConnVersion extends AsyncTask<String, Void, ConnData>{@Overrideprotected ConnData doInBackground(String... params) {URL serviceAddrUrl;HttpURLConnection conn;String urlStr=params[0];try {serviceAddrUrl = new URL(urlStr);conn = (HttpURLConnection) serviceAddrUrl.openConnection();conn.connect();int len=conn.getContentLength();InputStream in=conn.getInputStream();HashMap<String, String> hashMap=new ParseXmlService().parseXml(in);connDataInfo=new ConnData(hashMap, len); //关闭连接 conn.disconnect();return connDataInfo;} catch (Exception e) {e.printStackTrace();}return null;}}
2,FileNotFound
apk在服务器上找不到,路径都对就是文件无法访问到,这个问题我是看别人解决的:URL请求的具体实现,网上各种各样,没有什么好纠结的了。URL路径完全没有问题,替换成同目录下的其他类型文件,可以找到文件,唯独找不到文件。
找了几个小时,悄然发现,原来和IIS的设置有关系,我这边使用的测试服务器为IIS,IIS默认限制了apk类型文件的下载,所以输入流拿不到文件数据,提示“找不到文件”。
最终解决办法:
1、在管理工具里打开Internet 信息服务(IIS)管理器。然后选择需要配置的网站。
2、右侧的界面中会显示该网站的所有功能配置,我们选择并点击进入“MIME类型”。
3、在右侧的操作区选择点击“添加”MIME。
4、在弹出的添加窗口里的文件扩展名输入:APK
在MIME类型输入:application/vnd.android.package-archive
按确定。
3,版本更新时已经下载好后的apk无法安装,安装不上,代码没有问题,后来发现必须以发布的方式运行原始的apk,然后更新下下来最新的apk进行安装。即要导出当前测试的apk而不能直接在eclipse上测试更新安装这个。
转载于:https://www.cnblogs.com/CoderZhdSky/p/4569291.html
android 软件apk自动更新实现注意点!!相关推荐
- android更新软件,Android软件的自动更新
今天重新写了一篇自动更新的文章,参考:http://aokunsang.iteye.com/blog/1750440.本篇文章的源码整理了下,上传到了附件,需要的去下载. 看了几个博客,讲自动升级的程 ...
- 【Android 应用开发】Android应用的自动更新模块
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 软件的自动更新一般都与Splash界 ...
- [转]Android应用的自动更新
软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...
- 透过还原卡还原软件游戏自动更新系统(转)
网吧网络有盘技术革命性的突破 --透过还原卡还原软件游戏自动更新系统 <> 1.零等待系统 使用了国内独一无二的还原卡及还原软件的自动转储技术,任何游戏补丁只需要从网吧服务器上拷贝一次,就 ...
- android apk 自动更新,Android自动更新APK
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通过Service的方式(推荐使用JobService),在后台获取服务器的APK信息,然后下载到本地,通过调用系统安装 ...
- Android软件设置自动检查更新
如果让我推荐功能强大的第三方集成开发包,我一定会推荐友盟,有着强大的软件统计,分析功能(原谅我,我不是打广告). 这一篇介绍友盟的自动更新功能,但是首先你得拥有友盟. 友盟的集成步骤 1.1 导入SD ...
- Android接入百度自动更新SDK
一:前言 公司的app,上传到百度应用市场,然后说必须要接入百度的自动更新sdk才能上架,于是从百度官网上去下载jar包,下载的时候必须要带上数据统计,如果使用自动的jar包,还需要带上广告联盟,坑爹 ...
- Android实现APP自动更新
当有更新时,会弹出一个提示框,点击确定,则在通知栏创建一个进度条进行下载,点击取消,则取消更新. 1.创建布局文件notification_item.xml,用于在通知栏生成一个进度条和下载图标. & ...
- 手机android怎么关闭自动更新,如何停止Android手机上的应用程序自动更新
有几个原因可以阻止Play Store自动更新应用程序. 也许新的更新破坏了功能,或者您需要跟踪您的数据使用情况,并且不想通过蜂窝数据LIM. 不管是什么原因,这里是如何阻止自动更新发生在你的Andr ...
最新文章
- 如何查看linux系统服务器磁盘大小和文件占用情况
- BestCoder Round #78 (div.2)
- 实战SSM_O2O商铺_29【商品】商品添加之Service层的实现及重构
- MySQL命令行登陆,远程登陆MySQL
- git 上下载的项目在本地安装依赖时报错 Could not resolve dependency
- 单片机检测stc没反应_我为什么不用STC单片机
- 3W字!带你玩转「消息队列」
- 使用solrj和EasyNet.Solr进行原子更新
- 为什么所有的APP都在炫富?
- 路由的跳转 , 动态路由的配置
- myid文件缺失导致zookeeper无法启动(myid file is missing)
- 高等微積分(高木貞治) 1.4節 例2
- html 文章阅读次数,关于浏览次数和浏览次数缓存的问题
- 全局替换资源_BitLocker+VHD替换TrueCrypt及其后继VeraCrypt
- MSN机器人-头像显示
- linux 关闭僵尸进程,linux下的僵尸进程处理办法
- 1024程序员节,云和恩墨送大礼啦
- 51单片机八段数码c语言程序,51单片机做的音乐盒,带八段数码管显示程序+Proteus仿真...
- canvas 绘点图
- 什么电脑录音软件是最好用的
热门文章
- vsftpd pam_mysql_vsftpd+mysql+pam虚拟用户无法登录ftp服务器,请给位大侠帮忙!
- excel两个表格数据对比_教你如何使用excel快速对比多项数据
- UnityShader14:透明效果实现(上)
- 2018C/C++蓝桥杯解析
- bzoj 1690: [Usaco2007 Dec]奶牛的旅行(01分数规划--最优比率环)
- python机器学习库sklearn——岭回归(Ridge、RidgeCV)(L2正则化)
- js中函数返回值return
- 图像处理一:形态学膨胀和腐蚀
- 贺利坚老师汇编课程55笔记:带进位加法指令ADC
- java 之 servlet简介