定时启动服务
来源:互联网 发布:大学生兼职知乎 编辑:程序博客网 时间:2024/06/10 15:44
来自 郭婶的 《第一行代码》 ,自己仅是学习,整理,copy
- 获取 AlarmManager
AlarmManager manager = (Alarm Manager)getSystemService(Context.ALARM_SERVICE);
- 调用 manager 的 set() 方法
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingIntent);
- set() 参数详解
第一个是整型参数 ,指定 AlarmManager 的工作类型 ,有四种
第二个参数
定时触发的时间,以毫秒计算。根据第一个参数的选择类型增加延迟的时间。
第三个参数
是一个 PendingIntent ,一般调用 getReBroadcast() 方法来获取一个能够执行广播的 PendingIntent , 当定时任务启动的时候, 广播接收器就可以 onReceive() 方法就可以得到执行。
- 实现
Service ,在 onStartCommand() 方法中开启一个子线程
public class LongRunningService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { new Thread(new Runnable() { @Override public void run() { Log.d("LongRunningService", "executed at " + new Date().toString()); }}).start();AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); int anHour = 60 * 60 * 1000; // 这是一小时的毫秒数long triggerAtTime = SystemClock.elapsedRealtime() + anHour; Intent i = new Intent(this, AlarmReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0); manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi); return super.onStartCommand(intent, flags, startId);}}
BroadcastReceiver , 在 onCreate() 中启动服务
@Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, LongRunningService.class); context.startService(i); } }
MainActiivty 第一次启动 服务
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent(this, LongRunningService.class); startService(intent); }
要在 mainfest 文件中注册
0 0
- 系统定时启动服务
- 定时启动Windows服务
- 定时启动服务
- 定时检测并启动服务
- scp远程下载和定时启动服务
- 开机自动启动服务并定时发送请求
- Windows以及Linux下的定时启动服务
- 写服务,删除服务的方法,定时启动程序,关闭程序
- tomcat6.0.24怎么设置成系统自启动服务和定时启动关闭
- AlarmManager 定时广播,定时服务
- ubuntu中想要定时启动一个服务引起的知识链条~~~
- 【原创】利用Ubuntu的cron服务来定时启动和关闭motion
- 定时重启机器,重启时运行启动服务脚本
- 细数c#Windows服务定时启动另一程序的一二坑
- 开发定时计算机服务
- 定时开关FTP服务
- linux crontab 定时服务
- EJB 定时服务实现
- ubuntu配置IDEA
- CodeForces 586D Phillip and Trains (基础搜索 -- DFS)
- eclipse使用
- pl/sql developer导入、出表结构和数据
- Web调试利器fiddler介绍
- 定时启动服务
- Error:Execution failed for task ':app:proguardRelease'.> java.io.IOException: Can't read [D:\android
- mina —— 分布式集群下长连接session共享的解决方案
- Python程序转换为exe程序,py2exe的使用方法
- Leetcode-121. Best Time to Buy and Sell Stock
- 2c问题记录
- 增加计时函数 GPGPU编程技术-从GLSL、CUDA到OpenCL 平方和算法第一版
- 如何产生随机数
- 欧拉工程第29题 a的b次方(2≤a,b≤100)中共有多少个不同的数