Android Studio 后台执行的定时操作
2016-07-25 09:10
459 查看
Android Studio 后台执行的定时操作
后台定时操作案例后台定时操作案例
执行一个后台10s的定时并在日志中输出package com.example.scott.servicebestpractice; //这里一定载入java.util包 import java.util.Date; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.os.SystemClock; import android.util.Log; public class MyService extends Service { public MyService() { } @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() { //调用java.util.Data中的方法输出时间 Log.d("MyService","executed at"+new Date().toString()); } }).start(); //获取AlarmManager 实例 AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); int anHour = 10*1000; //触发时间 long triggerAtTime = SystemClock.elapsedRealtime()+anHour; Intent i = new Intent(this,AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0,i,0); //ELAPSED_REALTIME_WAKEUP表示定时任务的触发时间从系统开机开始算起,但会唤醒CPU。在10秒钟后就会执行AlarmReceiver中的onReceive方法 manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime,pendingIntent); return super.onStartCommand(intent, flags, startId); } }
public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //启动MyService,形成一个循环,这样每10秒钟后MyService都会执行一次。这样一个长期的后台定时服务就完成了。 Intent i = new Intent(context,MyService.class); context.startService(i); } }
调试输出日志如图:
OK搞定啦 每10秒输出一次。
关注微信公众号,每天都有优质技术文章,搞笑GIF图片推送哦。
2016-7-25
Scott
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析