### 前言

今天在做app功能的时候,突然涉及到要监测网络的实时速度,于是一番折腾,整合了下相关知识,方便以后使用。下面让我们来学习下我封装的一个网速实时监测类——NetSpeed吧

今天涉及内容:

1. `NetSpeed`主要方法介绍

2. `NetSpeed`在`MainActivity`中的使用

3. 效果图和项目结构图

先来波效果图

![](/contentImages/image/20200313/SSKSjtRP7Ao5QJMrcnF.png)

![](/contentImages/image/20200313/WmFwKHwORiwYypuFszt.png)

#### 一. NetSpeed主要方法介绍

`NetSpeed`作为一个网速监听类,具备以下几个主要方法:

```

/**

* 设置延时启动时间

*

* @param delayTime 单位毫秒,默认500毫秒

* @return

*/

public NetSpeed setDelayTime(long delayTime)

/***

* 设置循环时间间隔

*

* @param recycleTime 单位毫秒,默认1500毫秒

* @return

*/

public NetSpeed setRecycleTime(long recycleTime)

/***

* 开始监测网速

*

* @param view 显示网速的控件,TextView子类

*/

public void start(TextView view)

/**取消网速监测**/

public void cancel()

/***

* 获取某一时刻网速

*

* 需要结合定时器更新

* @return

*/

public String getNetSpeed()

/**将byte自动转换为其他单位**/

public String formatNetSpeed(long bytes)

```

#### 二. NetSpeed在MainActivity中的使用

先进行声明和初始化

```

//声明

private NetSpeed mNetSpeed;

//初始化

mNetSpeed=new NetSpeed(MainActivity.this);

```

然后直接调用实现实时监测网速:

```

//网速监测(已内置定时器,结束监测时需要调用取消方法)

mNetSpeed.setDelayTime(500)//设置延迟执行时间,单位毫秒,默认500毫秒

.setRecycleTime(1500)//设置监测时间间隔,单位毫秒,默认1500毫秒

.start(mTextView);//开始监测网速,传入要显示网速的控件

```

在界面退出或销毁时注销网速监听:

```

//取消网络监测

if(mNetSpeed!=null){

mNetSpeed.cancel();

}

```

下面贴出`NetSpeed`在`MainActivity`中使用代码:

```

public class MainActivity extends AppCompatActivity{

private TextView mTextView;

private Button mButton;

//声明

private NetSpeed mNetSpeed;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mTextView=findViewById(R.id.tv);

mButton=findViewById(R.id.btn);

//初始化

mNetSpeed=new NetSpeed(MainActivity.this);

mButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

LogUtil.i("=====ooooooo==1===");

//网速监测(已内置定时器,结束监测时需要调用取消方法)

mNetSpeed.setDelayTime(500)//设置延迟执行时间,单位毫秒,默认500毫秒

.setRecycleTime(1500)//设置监测时间间隔,单位毫秒,默认1500毫秒

.start(mTextView);//开始监测网速,传入要显示网速的控件

}

});

}

@Override

protected void onDestroy() {

super.onDestroy();

//取消网络监测

if(mNetSpeed!=null){

mNetSpeed.cancel();

}

}

}

```

#### 三.效果图和项目结构图

效果图

![](/contentImages/image/20200313/SSKSjtRP7Ao5QJMrcnF.png)

![](/contentImages/image/20200313/WmFwKHwORiwYypuFszt.png)

项目结构图

![](/contentImages/image/20200313/UqTZeQlcSSU0YsVKUMm.png)

今天内容就到这里了,谢谢大家。

java实时获取android网速_Android实现网速实时监测工具类相关推荐

  1. java rootpath_Java 获取webapp,Root,classpath,项目等路径工具类

    public class UtilPath { public static void main(String[] args) { String systemName = System.getPrope ...

  2. Android旋转视频工具类,Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】...

    本文实例讲述了Android开发实现的IntentUtil跳转多功能工具类.分享给大家供大家参考,具体如下: 说明:此工具类是本人开发中总结下来的,还有其它的跳转亲给我留言,希望大家一起把这个工具类打 ...

  3. 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  4. java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题

    文章目录 先看成品 前言 一.项目目录结构 一.海报制作PosterUtil.java工具类 1. 描述 2. 代码 二.测试生成海报 1. 描述 2. 直接上代码 四.其他测试 1. Test1_C ...

  5. java实时获取android网速_Android中获取实时网速(2)

    一.实现思路: 1.Android提供有获取当前总流量的方法 2.上一秒 减去 下一面的流量差便是网速 3.注意计算 二.计算网速的工具类: package imcs.cb.com.viewappli ...

  6. 实时获取Android手机CPU频率

    Android手机的CPU的频率信息被保存在 /sys/devices/system/cpu/cpu0/cpufreq 目录下,通过shell命令查看该目录下的文件,如下图 其中cpuinfo_cur ...

  7. python实时获取Android FPS

    python---实现实时获取Android FPS 1:如何计算FPS信息? 2:如何获取FPS信息? 3:python实现 fps实时获取和计算 使用adb shell dumpsys gfxin ...

  8. 在Java中获取Android端登陆的设备信息

    最近在项目中有个需求,需要获取Android设备的信息,例如:华为,Android10. 可以通过request.getHeader("User-Agent");中来解析出.但是实 ...

  9. android 蓝牙低功耗(BLE)非常棒的工具类,获取小米手环的步数

    现在物联网搞的轰轰烈烈的,小米的手环等一系列产品,下面我们就来研究一下小米手环的记步功能 工具类 package com.zsl.bluetoothdemo.ble;import android.bl ...

最新文章

  1. HDU - 1051 Wooden Sticks
  2. picf509c语言程序,樊媛媛c语言程序设计09编译预处理.pptx
  3. 漫谈移动开发中的组件化
  4. Dapr微服务应用开发系列4:状态管理构件块
  5. 【前端就业课 第一阶段】HTML5 零基础到实战(五)基础元素
  6. Git 教程学习--第三篇
  7. 元素之和最接近 0 的区间(部分和)
  8. 广义典型相关分析_数学建模/机器学习:广义加性模型(GAM)及其Python实现
  9. wxpython播放视频_opencv视屏流嵌入wxpython框架
  10. 从最理想的情况论证自己的观点,必然错误,为什么明知故犯?
  11. 制作U盘macos系统
  12. [网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
  13. K歌、短视频技术最佳实践——“唱吧”音视频技术探索
  14. linux区分三种用户角色,Linux用户角色划分
  15. 设计模式——简单工厂模式
  16. 字节跳动21届秋招工资单曝光
  17. html图片旋转3种方式—— CSS3 transform
  18. Sicily 1001. Alphacode
  19. php下划虚线,怎么定义每一行的文字下面都有下划线虚线?_html/css_WEB-ITnose
  20. 香帅的北大金融学课笔记20 -- 金融术与道

热门文章

  1. html 图片透明字不透明,CSS实现背景图片透明,文字不透明效果的两种方法
  2. 「 C++ MFC 」“读取.txt文档实例”讲解
  3. canvas+gif.js打造自己的数字雨头像
  4. C语言编程从键盘输入n
  5. Android N 指纹框架
  6. OpenCV--直线拟合fitLine及求两直线对称轴
  7. 用管家婆软件记录公司的管理费用
  8. 全局下的isFinite
  9. echarts 仿支付宝基金七日年化折线图
  10. 测试工作中常见问题及优化方案