Android Studio 中实现简单的定时器代码
2015-11-21 19:16
495 查看
需求:类似iOS中的NSTimer 定时器功能,开关控制随机几秒钟执行指定功能;
平台:Android
开发环境:Android Studio
代码实现:
一. 创建Handler对象和Runnable对象
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
if (mPageOpen){
if (interstitialAd.isLoaded()){ //示例-谷歌插页广告
interstitialAd.show();
}else {
AdRequest adRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest);
}
int random = (int)(Math.random() * 10 +20)*1000; //随机时间循环执行
handler.postDelayed(this, random);
}
}
};
二. 开关控制
Switch mSwith = (Switch) findViewById(R.id.switchPage);
mSwith.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
mPageOpen = true;
} else {
mPageOpen = false;
}
handler.postDelayed(runnable, 15000); //开关控制执行
}
});
三. 移除定时器
handler.removeCallbacks(runnable);
附:加入 Android中国开发者 QQ群:361871827 欢迎一起讨论技术..
平台:Android
开发环境:Android Studio
代码实现:
一. 创建Handler对象和Runnable对象
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
if (mPageOpen){
if (interstitialAd.isLoaded()){ //示例-谷歌插页广告
interstitialAd.show();
}else {
AdRequest adRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest);
}
int random = (int)(Math.random() * 10 +20)*1000; //随机时间循环执行
handler.postDelayed(this, random);
}
}
};
二. 开关控制
Switch mSwith = (Switch) findViewById(R.id.switchPage);
mSwith.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
mPageOpen = true;
} else {
mPageOpen = false;
}
handler.postDelayed(runnable, 15000); //开关控制执行
}
});
三. 移除定时器
handler.removeCallbacks(runnable);
附:加入 Android中国开发者 QQ群:361871827 欢迎一起讨论技术..
相关文章推荐
- Android 窗口添加机制系列3-代码实例
- Android仿美团切换城市
- android studio 启动的时候报错start failed internal error
- Android develop 多分辨率适配
- android开发奇葩事之DatePicker TimePicker 样式
- Android之GPS定位详解
- Picasso学习笔记
- Android moveTaskToBack()方法实现手动隐藏当前Activity
- Android生命周期总结
- Android Studio 1.5
- 收藏
- 【Android】Android插件开发 —— 打开插件的Activity(预注册方式)
- Android 窗口添加机制系列2-Dialog,PopupWindow,Toast
- 【Android】仿QQ功能点击通知栏返回应用,非启动一个新Activity
- 转: 关于android 机型适配的问题
- Android Studio的使用(十三)--设置方法分割线
- Android&java优化---(2)---java内存
- AndroidJUnitRunner常用命令
- android.content.res.Resources$NotFoundException: String resource ID #0x1
- Android Theme and Menu 主题菜单相关