Android - 定时服务 - Timer
注:在项目中,有时可能会有一些定时执行的任务,这时,一般都会在一个service中写一个定时器。
例:
Service类:
import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class TimerService extends Service {
Timer timer; //定时器
TimerTask task;//定时执行的任务
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
timer = new Timer();
task = new TimerTask() {
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("执行了一次定时任务");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
// 参数说明:1、任务2、延迟指定的时间后开始执行3、以指定的频率重复执行任务
timer.scheduleAtFixedRate(task, 1000, 1000);
super.onCreate();
}
@Override
public void onDestroy() {
System.out.println("停止了定时任务");
timer.cancel();
task.cancel();
super.onDestroy();
}
}
使用:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Button btn_start;
Button btn_stop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Intent intent =new Intent(MainActivity.this, TimerService.class);
btn_start = (Button) findViewById(R.id.btn_start);
btn_stop = (Button) findViewById(R.id.btn_stop);
btn_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startService(intent);
}
});
btn_stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
stopService(intent);
}
});
}
}
Android - 定时服务 - Timer的更多相关文章
- VS2015 C#.net4.6 windows的定时服务
1.创建项目 C#->经典桌面->windows服务 2.创建定时服务 找到服务1,自动生成了 OnStart(服务开启时运行),OnStop(服务关闭时运行)两个函数,我们需要在开启时新 ...
- C# windows定时服务+服务邮箱发送
protected override void OnStart(string[] args) { timer1 = new System.Timers.Timer(); // timer1 = new ...
- Spring定时服务QuartZ
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等. 我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作, ...
- Python循环定时服务功能(相似contrab)
Python实现的循环定时服务功能.类似于Linux下的contrab功能.主要通过定时器实现. 注:Python中的threading.timer是基于线程实现的.每次定时事件产生时.回调完响应函数 ...
- iOS中的NSTimer 和 Android 中的Timer
首先看iOS的, Scheduling Timers in Run Loops A timer object can be registered in only one run loop at a t ...
- 3D语音天气球(源码分享)——在Unity中使用Android语音服务
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 这个项目准备分四部分介绍: 一:创建可旋转的"3D球":3 ...
- Android从服务端获取json解析显示在客户端上面
Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...
- LBPL--基于Asp.net、 quartz.net 快速开发定时服务的插件化项目
LBPL 这一个基于Asp.net. quartz.net 快速开发定时服务的插件化项目 由于在实际项目开发中需要做定时服务的操作,大体上可以理解为:需要动态化监控定时任务的调度系统. 为了实现快速开 ...
- Spring MVC定时服务
spring-mvc-config.xml <context:component-scan base-package="com.bf" ></context:co ...
随机推荐
- Prism 5 + MEF中的ModuleCatalog.CreateFromXaml问题
protected override IModuleCatalog CreateModuleCatalog() { return Microsoft.Practices.Prism.Modularit ...
- Excel应该这么玩——0、初衷:用IT方法玩Excel
在企业中处理业务数据,最好的方案是使用业务系统.业务系统可以基于复杂的业务逻辑处理大量数据,并支持多人协作处理流程性的工作,对支撑企业运营非常重要.但是由于业务系统的复杂性很高,一点小小的改变也需要较 ...
- Java多线程编程——进阶篇二
一.线程的交互 a.线程交互的基础知识 线程交互知识点需要从java.lang.Object的类的三个方法来学习: void notify() 唤醒在此对象监视器上等待的单个 ...
- C#的path.GetFullPath 获取上级目录实现方法
这篇文章主要介绍了C#的path.GetFullPath 获取上级目录实现方法,包含了具体的C#实现方法以及ASP.net与ASP等的方法对比,非常具有实用价值,需要的朋友可以参考下 本文实例讲述 ...
- libjingle_peerconnection
最近在学习libjingle_peeconnection的代码 不知道应该如何写起,就先从类和各种数据结构列起吧 PeerConnectionFactory: 在创建PeerConnectionFac ...
- 模板引擎:ArtTemplate 使用入门和简单的使用
下载地址:https://github.com/aui/artTemplate 快速上手请参考:https://github.com/aui/artTemplate 通过阅读artTemplate原文 ...
- 基于ASP.NET MVC定时执行任务调度
相对FluentScheduler实现定时调度任务的使用简单,配置少的特点,Quartz.Net则配置稍微复杂一些.下面我们就接合一个 ASP.NET MVC网站应用程序的定时执行任务调试的小实例来了 ...
- python virtualenv
一 安装 pip install virtualenvwrapper - 把下面这句加到~/.bash_profile里面,如不嫌麻烦,也可以每次都手动执行.source /usr/local/bi ...
- 从零开始学iPhone开发(4)——使用WebView
转自 总结关于iPhone中UIWEBVIEW读取本地GBK编码格式html 关于webView读取本地GBK编码的html,尝试了两天,终于成功. 欢喜之余,把感想记下来.一般来说,不成都是人犯错, ...
- DataGridView单元格美化
#region 重绘Column.Row int _RowHeadWidth = 41; /// /// 重绘Column.Row ...