前言
今天在做app功能的时候,突然涉及到要监测网络的实时速度,于是一番折腾,整合了下相关知识,方便以后使用。下面让我们来学习下我封装的一个网速实时监测类——NetSpeed吧
今天涉及内容:
-
NetSpeed
主要方法介绍 -
NetSpeed
在MainActivity
中的使用 - 效果图和项目结构图
-
NetSpeed
源码
先来波效果图
一. 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();
}
}
}
三.效果图和项目结构图
效果图
项目结构图
四. NetSpeed源码
NetSpeed
源码如下: