在Android5.0.2机子上采用AlarmManager轮询失败
2016-02-29 14:10
489 查看
测试机是android5.0.2系统,我采用的是AlarmManager的方法进行轮询,轮询的方法如下:
在android4.1.2和android4.4的机子上测试没有问题。
如果android5.0.2插上USB,这个轮询方法也能正常执行。但是如果拔掉USB,轮询方法将会每4分钟左右才执行,无论我设置的是多少分钟。
调试了3天没找到答案,为了项目进度,后来采用Timer+timertask进行完成轮询操作。
这个问题在这里先记录一下。如果有知道答案的请告诉我一下,感激不尽。
public static void startPollingService(Context context, long seconds, Class<?> cls,String action) { //获取AlarmManager系统服务 AlarmManager manager = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); //包装需要执行Service的Intent Intent intent = new Intent(context, cls); intent.setAction(action); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //触发服务的起始时间 long triggerAtTime = SystemClock.elapsedRealtime(); // long triggerAtTime = System.currentTimeMillis(); //使用AlarmManger的setRepeating方法设置定期执行的时间间隔(seconds秒)和需要执行的Service manager.setRepeating(AlarmManager.ELAPSED_REALTIME, triggerAtTime, seconds * 100, pendingIntent); }
//停止轮询服务 public static void stopPollingService(Context context, Class<?> cls,String action) { AlarmManager manager = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, cls); intent.setAction(action); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //取消正在执行的服务 manager.cancel(pendingIntent); }
在android4.1.2和android4.4的机子上测试没有问题。
如果android5.0.2插上USB,这个轮询方法也能正常执行。但是如果拔掉USB,轮询方法将会每4分钟左右才执行,无论我设置的是多少分钟。
调试了3天没找到答案,为了项目进度,后来采用Timer+timertask进行完成轮询操作。
这个问题在这里先记录一下。如果有知道答案的请告诉我一下,感激不尽。
相关文章推荐
- Android EditText软键盘显示隐藏以及“监听”
- android做支付宝移动支付时遇到跳转失败问题
- android:常用的AlertDialog对话框及自定义对话框
- Android之自定义view换行的实现
- 【Android工具类】用户输入非法内容时的震动与动画提示——EditTextShakeHelper工具类介绍
- Android Studio中集成OpenCV
- Android启停调试
- Android 替换全局字体
- android 单价乘以数量计算总价 乘法
- 让Android Support V4中的SwipeRefreshLayout支持上拉加载更多
- Android 资源文件中@、@android:type、@*、?、@+含义和区别
- Android Studio 中使用JNI的步骤
- android学习之RelativeLayout
- 关于Android的震动器Vibrator使用一点心得
- Android自定义圆形和圆角图片
- Android 沉浸式状态栏 一体化状态栏实现
- Android模拟器的文件目录介绍
- Android学习笔记之View(一):LayoutInflater
- Android学习笔记之View(二)
- Android Activity学习 <二> Activity间通讯