• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Java时间间隔问题在Android中的使用,javaandroid

Java时间间隔问题在Android中的使用,javaandroid

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了java计算时间间隔,java 时间间隔,java 判断时间间隔,java 日期间隔,java日期间隔天数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Java时间间隔问题在Android中的使用,javaandroid


转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6606720.html

 

假设我们在做项目的时候,获取到了一段音频,也知道音频长度,那么我们想对音频做一些处理的时候,在这个处理动作之前往往要做时间循环判断

已知:音频长度,并且还给出下面四个条件
重试时间长度 = 音频长度 × 0.7 + 30秒
第一次重试: 重试时间长度 x 0.15
第二次重试: 重试时间长度 x 0.5
第三次重试: 重试时间长度 x 1

上述的已知条件我们可以用下面这两段代码来实现:

private int[] getRetryIntervalTimes(final Context context, final int duration) {
    // 重试时间长度 = 音频长度 × 0.7 + 30秒
    final int retryMaxTime = duration * getResValue(context, 70) / 100 + getResValue(context, 30);
    // 第一次重试: 重试时间长度 x 0.15
    // 第二次重试: 重试时间长度 x 0.5
    // 第三次重试: 重试时间长度 x 1
    return new int[]{
            0,
            (retryMaxTime * getResValue(context, 15) / 100) * 1000,
            (retryMaxTime * getResValue(context, 50) / 100) * 1000,
            (retryMaxTime * getResValue(context, 100)/ 100) * 1000
    };
}
private int getResValue(final Context context, final int resId) {
    return Integer.parseInt(context.getString(resId));
}

执行循环判断,一般都是Retry3次,如果不通过就不执行处理,三次以内,那次执行通过,那次就开始做处理。可以用下面这段代码来实现:

private void initMethod() {
    final int[] retryIntervalTimeMillis = getRetryIntervalTimes(getApplicationContext(), 整型音频长度);
    final long[] executeTimes = {0, 0, 0, 0};
    long startTimeMillis = 0;
    // 重试三次
    for (int i = 0; i < 4; i++) {
        try {
            if (i > 0) {
                long waitTimeMillis = executeTimes[i] - System.currentTimeMillis();
                Date executeTime = new Date(executeTimes[i]);
                String planTime = String.format(Locale.CHINESE, "%tF|%tT.%tL", executeTime, executeTime, executeTime);
                Log.d("", "<" + i + "> Plan: " + planTime + ", Wait: " + (waitTimeMillis > 0 ? waitTimeMillis : 0) + "ms");
                if (waitTimeMillis > 0) {
                    Thread.sleep(waitTimeMillis);
                }
            }
            startTimeMillis = System.currentTimeMillis();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            if (i == 0) {
                // 重试时间起点 = 首次完成时间确认
                final long retryStartTimeMillis = System.currentTimeMillis();
                // 重试计划开始时间 = 重试时间起点 + 重试各次间隔时间
                executeTimes[1] = retryStartTimeMillis + retryIntervalTimeMillis[1];
                executeTimes[2] = retryStartTimeMillis + retryIntervalTimeMillis[2];
                executeTimes[3] = retryStartTimeMillis + retryIntervalTimeMillis[3];
            }
            Log.d("", "<" + i + "> [FINISH]. process time: " + (System.currentTimeMillis() - startTimeMillis) + "ms");
        }
    }
}

以上就是Java时间间隔问题在Android中的使用。

 

关注我的新浪微博,获取更多Android开发资讯!

关注科技评论家,领略科技、创新、教育以及最大化人类智慧与想象力!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java时间间隔问题在Android中的使用,javaandroid

相关文章

  • 2017-05-26实用的圆形图片控件ImageView,
  • 2017-05-222.3.3 Button(按钮)与ImageButton(图像按钮)
  • 2017-05-26Android表单UI及相应控件的事件处理,android表单ui控件
  • 2017-05-26我的第一节Android课,第一节Android课
  • 2017-05-26开发 Material Design+RxJava+Retrofit+MVP App 参考资料,rxjavaretrofit
  • 2017-05-26微博API常用方法,博API常用方法
  • 2017-05-26Android下拉刷新上拉加载更多的扩展ListView
  • 2017-05-26RadioButton与CheckBox,radiobutton
  • 2017-05-26Android React-Native系列之(一)零基础搭建React-Native开发环境
  • 2017-05-26Android Studio多渠道打包,androidstudio打包

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 2.3.2 EditText(输入框)详解
    • Android开发5:应用程序窗口小部件App Widgets的实现,androidwidgets
    • 一个特别适合新手练习的Android小项目——每日一妹纸
    • 使用phonegap播放音频,phonegap播放音频
    • 银联支付,支付
    • JRebel for Android 1.0发布!,jrebelandroid
    • 离线用户的灰色头像处理,离线灰色头像
    • Mac下载安装Android Studio教程,androidstudio
    • Android 权限的实现,Android权限实现
    • Android基于回调的事件处理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有