当前位置: 首页 > news >正文

上海网站设计建设今天杭州新闻最新消息

上海网站设计建设,今天杭州新闻最新消息,关于网站建设项目的投诉函,微信平台免费小程序制作问题来了#xff0c;平时开发应用也许你会遇到这种场景#xff1a;应用启动检查服务器版本#xff0c;若大于当前版本#xff0c;则要从网络上下载APK文件#xff0c;并在Activity上展示进度条。 版本更新#xff0c;无非是下载apk文件#xff0c;安装apk。 //其中用到…问题来了平时开发应用也许你会遇到这种场景应用启动检查服务器版本若大于当前版本则要从网络上下载APK文件并在Activity上展示进度条。 版本更新无非是下载apk文件安装apk。 //其中用到 Xutils ublic class CheckVersionUtils {private static CheckVersionUtils mCheckVersionUtils;private CheckVersionUtils() {}public static CheckVersionUtils getInstance() {if (mCheckVersionUtils null) {mCheckVersionUtils new CheckVersionUtils();}return mCheckVersionUtils;}/*** 访问网络检查版本号码** param isToastNoVersion 是否弹出当前版本已为最新版本的Toast* param activity 弹窗需要的依赖的Activity*/public void checkVersionToServer(final boolean isToastNoVersion, final Activity activity) {x.http().get(new RequestParams(ConstantValue.CHECK_VERSION_JSON_URL), new Callback.CommonCallbackString() {Overridepublic void onSuccess(String result) {Log.e(CheckVersionActivity, CheckVersionActivity onSuccess() result);processData(result, activity, isToastNoVersion);}Overridepublic void onError(Throwable ex, boolean isOnCallback) {}Overridepublic void onCancelled(CancelledException cex) {}Overridepublic void onFinished() {}});}/*** 返回版本号*/private int getVersionCode() {return BuildConfig.VERSION_CODE;}/*** 解析JSON** param json* param isToastNoVersion*/private void processData(String json, Activity activity, boolean isToastNoVersion) {Gson gson new Gson();CheckVersionBean checkVersionBean gson.fromJson(json, CheckVersionBean.class);/*** 保存在手机的位置*/String saveSDPath EXB_SD_PATH_APK checkVersionBean.getFileName();//判断是否需要更新if (getVersionCode() checkVersionBean.getVersionCode()) {showUpdateDialog(checkVersionBean, saveSDPath, activity);} else {if (isToastNoVersion) {//不更新Toast.makeText(activity, 当前版本已为最新版本, Toast.LENGTH_SHORT).show();}}}/*** 显示更新对话框** param checkVersionBean*/private void showUpdateDialog(final CheckVersionBean checkVersionBean, final String saveSDPath, final Activity activity) {//创建文件,判断是否存在AlertDialog.Builder builder new AlertDialog.Builder(activity);AlertDialog alertDialog builder.create();//更新描述信息String updateLog checkVersionBean.getUpdateLog();if (TextUtils.isEmpty(updateLog)) {updateLog 新版本欢迎更新;}//版本名称String versionName checkVersionBean.getVersionName();if (TextUtils.isEmpty(versionName)) {versionName 1.1;}alertDialog.setTitle(新版本 versionName);alertDialog.setMessage(updateLog);//判断是否要强制更新if (checkVersionBean.getIsForceUpdate() 1) {//强制更新//设置外部点了没有效果alertDialog.setCanceledOnTouchOutside(false);//禁用返回键alertDialog.setCancelable(false);alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, 更新, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {//更新downloadApk(checkVersionBean.getDownloadUrl(), saveSDPath, activity);}});} else {alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, 取消, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {}});alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, 更新, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {//更新downloadApk(checkVersionBean.getDownloadUrl(), saveSDPath, activity);}});}alertDialog.show();}/*** 下载apk** param downurl*/private void downloadApk(String downurl, String path, final Activity activity) {final ProgressDialog progressDialog new ProgressDialog(activity);RequestParams requestParams new RequestParams(downurl);requestParams.setSaveFilePath(path);x.http().get(requestParams, new Callback.ProgressCallbackFile() {Overridepublic void onWaiting() {}Overridepublic void onStarted() {}Overridepublic void onLoading(long total, long current, boolean isDownloading) {progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setMessage(拼命下载中...);progressDialog.show();progressDialog.setMax(100);double fcurrent current;progressDialog.setProgress((int) ((fcurrent / total) * 100));}Overridepublic void onSuccess(File result) {Toast.makeText(NiceyooApplication.getNiceyooApp(), 下载完成, Toast.LENGTH_SHORT).show();progressDialog.dismiss();installApk(activity, result);}Overridepublic void onError(Throwable ex, boolean isOnCallback) {ex.printStackTrace();Toast.makeText(NiceyooApplication.getNiceyooApp(), 下载失败请检查网络和SD卡, Toast.LENGTH_SHORT).show();progressDialog.dismiss();}Overridepublic void onCancelled(CancelledException cex) {}Overridepublic void onFinished() {}});}/*** 安装对应apk** param activity* param file 安装文件*/private void installApk(Activity activity, File file) {//系统应用界面,源码,安装apk入口Intent intent new Intent(android.intent.action.VIEW);intent.addCategory(android.intent.category.DEFAULT);//设置安装的类型intent.setDataAndType(Uri.fromFile(file), application/vnd.android.package-archive);activity.startActivityForResult(intent, ConstantValue.INSTALL_NEW_VERSION_SUCCESS);} }上边代码不是server下载 为什么要用server下载呢因为有可能 你需要更新的这个Activity要求是可以转屏的。那么在转屏时Actvitiy会重启如何保证下载的进度条能正确展示进度呢当然是用server下载了… public class UpdateService extends Service {public UpdateService() {}/*** 安卓系统下载类**/DownloadManager manager;/*** 接收下载完的广播**/DownloadCompleteReceiver receiver;/*** 初始化下载器**/private void initDownManager() {manager (DownloadManager) getSystemService(DOWNLOAD_SERVICE);receiver new DownloadCompleteReceiver();//设置下载地址DownloadManager.Request down new DownloadManager.Request(// 百度音乐Uri.parse(http://gdown.baidu.com/data/wisegame/fd84b7f6746f0b18/baiduyinyue_4802.apk));// 乐视体育// Uri.parse(http://122.228.237.132/apk.r1.market.hiapk.com/data/upload/apkres/2016/6_12/16/com.lesports.glivesports_040405.apk));// 设置允许使用的网络类型这里是移动网络和wifi都可以down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);// 下载时通知栏显示途中if (Build.VERSION.SDK_INT Build.VERSION_CODES.HONEYCOMB) {down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);}// 显示下载界面down.setVisibleInDownloadsUi(true);// 设置下载后文件存放的位置down.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, leshi.apk);// 将下载请求放入队列manager.enqueue(down);//注册下载广播registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));}Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// 调用下载initDownManager();return super.onStartCommand(intent, flags, startId);}Overridepublic IBinder onBind(Intent intent) {return null;}Overridepublic void onDestroy() {// 注销下载广播if (receiver ! null)unregisterReceiver(receiver);super.onDestroy();}// 接受下载完成后的intentclass DownloadCompleteReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {//判断是否下载完成的广播if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {//获取下载的文件idlong downId intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);//自动安装apkif (Build.VERSION.SDK_INT Build.VERSION_CODES.HONEYCOMB) {Uri uriForDownloadedFile manager.getUriForDownloadedFile(downId);Log.d(kodulf, uri uriForDownloadedFile);installApkNew(uriForDownloadedFile);}//停止服务并关闭广播UpdateService.this.stopSelf();}}//安装apkprotected void installApkNew(Uri uri) {Intent intent new Intent();//执行动作intent.setAction(Intent.ACTION_VIEW);//执行的数据类型intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setDataAndType(uri, application/vnd.android.package-archive);//不加下面这句话是可以的查考的里面说如果不加上这句的话在apk安装完成之后点击单开会崩溃// android.os.Process.killProcess(android.os.Process.myPid());startActivity(intent);}} } 参考http://blog.csdn.net/rodulf/article/details/51706788#comments 下载demo
http://www.yutouwan.com/news/134821/

相关文章:

  • 烟台网站建设推广wordpress英文切换
  • 免费的舆情网站app网络程序员
  • 美食网站建设多少钱网站热力图工具
  • 新开传奇网站发布网单职业微信怎么开通公众号
  • 公司网站定制开发西安未央网站建设
  • 手机网站制作平台网站搭建公司案例网址
  • 什么网站教做医学实验报告云浮网站建设
  • 做网站的专业词汇开发公司税金计算基数
  • 做编程网站有哪些方面wordpress loren
  • 网站开发项目团队公众号做漫画网站
  • 网站排名查询用cms建网站
  • 欧派网站谁做的网站模板好
  • 电子商务网站建设的一般过程lamp网站开发项目文档
  • 汕头市作风建设的网站网站页面引导怎么做
  • 网站分销系统90后做网站月入万元
  • 企业官网建站系统图文广告设计制作软件
  • 5年网站seo优化公司wordpress rss已删除
  • html5网站链接标签上海做网站找哪个公司好
  • 资源网站建设活动感受个性化建网站定制
  • 邢台企业做网站价格有限公司和有限责任的区别在哪里
  • 深圳建网站一般多少钱石家庄网站制作软件
  • 配音网站赚钱做采集网站赚钱吗
  • 电子商务网站建设方案推荐菜谱网站开发系统
  • 公司网站建设的好处用dw做网站首页步骤
  • 北京电商网站开发价格wordpress中文视频插件下载
  • 易语言如何做验证系统官方网站网络整合营销的概念
  • 宁波网站排名方法广东省住房及建设厅官方网站
  • 什么是建设网站的主题wordpress gallery widget
  • 建设招标网是什么网站哪个网站可以做照片分享
  • 公司网站 百度延边住房和城乡建设局网站