Android--双重定时器实现
在开发中,遇到服务是24小时定时执行,需要在WiFi条件下上传,需要监听WiFi,在开定时器,持续刷新WiFi状态
WiFi监听:
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class iswifi {
public static boolean isWiFiActive(Context inContext) {
Context context = inContext.getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
return true;
}
}
}
}
return false;
}
}
定时器:
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private Runnable runnable;
private Handler handler;
private Runnable runnable1;
private Handler handler1;
private int flag = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//外部定时器
handler1 = new Handler();
runnable1 = new Runnable() {
@Override
public void run() {
init();
handler1.postDelayed(this,1000*60*60);
}
};
handler1.postDelayed(runnable1,1000*5);
}
private void init() {
//内部检查WiFi定时器
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (iswifi.isWiFiActive(MyApplication.getContext())){
System.out.println("456");
handler.removeCallbacks(runnable);
}else {
System.out.println("789");
handler.postDelayed(this,1000*5);
}
}
};
handler.postDelayed(runnable,1000);
//利用while实现,不用定时器
// flag = 0;
// while (flag == 0 || flag == 2){
// if (iswifi.isWiFiActive(MyApplication.getContext())){
// System.out.println("456");
// flag = 1;
// }else {
// System.out.println("789");
// flag = 2;
// }
// }
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Appium之创建、连接夜神模拟器
或许当前有些小伙伴没 android 手机,这时候可以在电脑上开个模拟器玩玩,下面就分别介绍两种不同的模拟器,下面和大家一起学习交流。 一、android 模拟器 AVD 模拟器配置 1.双击启动 AVD Manager,进入配置界面 AVD Manager 2.点 Create 按钮创建 Create 按钮 3.3.配置模拟器基本信息 --AVD Name:设备名称,自己定义一个,用英文(不要用中文) --Device:设备型号,如下图选项意思是,4.7 寸手机,768*1280 分辨率,屏幕密度:xhdpi --Target:选对应 API 版本号,Android 版本号 4.4.2,对应 API 版本 19 --CPU/ABI:cpu 型号 --Keyboard:这个最好勾选,带键盘按钮 --Skin:皮肤设置,随意设置 --Front Camera:前置摄像头,设置为 None --Back Camera:后置摄像头,设置为 None --Memory Option :RAM 运行内存,设置 512 就行,VM Heap 这个是 app 的运行内存默认设置的 64 就行 --I...
-
下一篇
官方源、镜像源汇总
站点版 (一)、企业站 搜狐:http://mirrors.sohu.com/ 网易:http://mirrors.163.com/ 阿里云:http://mirrors.aliyun.com/ 腾讯:http://android-mirror.bugly.qq.com:8080/(仅针对APP开发的软件,限流,不推荐) 淘宝:http://npm.taobao.org/ (二)、教育站 上海交通大学:http://ftp.sjtu.edu.cn/html/resources.xml(部分移动运营商出口状况不佳,无法访问) 华中科技大学:http://mirror.hust.edu.cn/(当前已用容量估计:4.83T) 清华大学:http://mirrors.tuna.tsinghua.edu.cn/(当前已用容量估计:9.8T) 北京理工大学:http://mirror.bit.edu.cn/web/ 兰州大学:http://mirror.lzu.edu.cn/ 中国科技大学:http://mirrors.ustc.edu.cn/(当前已用容量估计:21.32T) 大连东软信息学院...
相关文章
文章评论
共有0条评论来说两句吧...