zoukankan      html  css  js  c++  java
  • 友盟强制更新

         公司项目选择了umeng的更新功能和,统计插件,而由于版本的管理,使得需要针对某些版本进行强制更新。比如上个版本出现了重大问题,必须进行版本升级才能修复,产品架构有了重大调整,数据结构发生了变化导致原先的app无法解析等等情况。但是查过umeng的产品文档,点击跳转地址为

    坑爹的umeng竟然没有强制更新功能,在目前的方法中无法实现强制更新。想想都开始打算做一个下载接口了,自己实现强制更新了。。。

        再查了次umeng的替代方案,发现有一个这样方式,通过在后台设置在线参数,然后在app中对在线参数进行处理,将升级对话框中响应事件设置监听器,完成强制更新的功能。

    首先看下后台设置在线参数地址:点击跳转

     

    然后在app中嵌入一下代码,参考

     1  UmengUpdateAgent.setUpdateOnlyWifi(false);
     2         String upgrade_mode = MobclickAgent.getConfigParams(this, "upgrade_mode");
     3  
     4         if(TextUtils.isEmpty(upgrade_mode)){
     5             return;
     6         }
     7         String[] upgrade_mode_array = upgrade_mode.split(";");
     8         UmengUpdateAgent.setUpdateOnlyWifi(false);
     9         UmengUpdateAgent.update(MainActivity.this);
    10         UmengUpdateAgent.forceUpdate(MainActivity.this);//这行如果是强制更新就一定加上
    11         for(String mode:upgrade_mode_array){
    12             String versionName = ((MyApplication)getApplication()).getVersionName();
    13             versionName = versionName + "f";
    14             if(mode.equals(versionName)){
    15                 //进入强制更新
    16                 UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
    17 
    18                     @Override
    19                     public void onUpdateReturned(int updateStatus, UpdateResponse updateResponse) {
    20                         
    21                     }
    22                 });
    23                 UmengUpdateAgent.setDialogListener(new UmengDialogButtonListener() {
    24                     @Override
    25                     public void onClick(int status) {
    26 
    27                         switch (status) {
    28                             case UpdateStatus.Update:
    29 
    30                                 break;
    31                             default:
    32                                 //退出应用
    33                                 MyApplication.base_logs.shortToast(getString(R.string.force_update_toast_string));
    34                                 ((MyApplication) getApplication()).AppExit(MainActivity.this);
    35                         }
    36                     }
    37                 });
    38                 break;
    39             }
    40         }

    这里

    UmengUpdateAgent.forceUpdate(MainActivity.this); 这行很重要,不加上这条,看看界面如何:

    这里可以选择忽略改版,然后即使代码规定点击以后再说,也不会退出应用程序。
    反过来加上这句代码看看界面如何:


    这里没有忽略改版,然后点击以后再说,就会退出应用程序。
    再次吐槽umeng的东西现在体验性不友好啊。


     
  • 相关阅读:
    SQL-W3School-函数:SQL FORMAT() 函数
    SQL-W3School-函数:SQL NOW() 函数
    SQL-W3School-函数:SQL ROUND() 函数
    SQL-W3School-函数:SQL LEN() 函数
    SQL-W3School-函数:SQL MID() 函数
    SQL-W3School-函数:SQL LCASE() 函数
    SQL-W3School-函数:SQL UCASE() 函数
    SQL-W3School-函数:SQL HAVING 子句
    27:级数求和
    26:统计满足条件的4位数个数
  • 原文地址:https://www.cnblogs.com/xilinch/p/4466509.html
Copyright © 2011-2022 走看看