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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题