我有一个小问题...我最需要的是一些提示和示例.. 我需要对 2 个字符串进行比较,其中一个来自设备上的当前日期,另一个是我写入的日期。所以这个比较可以随时进行.. 这个比较如果是真的运行各种命令。
我创建了一个调用循环一服务的 AlarmManager,并且在该服务中存在我需要的比较..
private static final int EXEC_INTERVAL = 10 * 1000;
Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), EXEC_INTERVAL, pendingIntent);
什么方法能更好地满足我的需求?
我用这个?还是需要 BroadcastReceiver?
如果你能给我一些例子,非常感谢..提前致谢!
最佳答案
据我所知,您在“MyAlarmService”中每 10 秒进行一次准时测试,对吗?
如果是这样,我的建议是使用 Handler 而不是 AlarmManager。根据android文档(http://developer.android.com/reference/android/app/AlarmManager.html),您应该使用Handler来进行定时操作。
此外,您可能不需要每次运行测试都启动服务。服务不是你应该不断启动的东西,你可能想把测试代码放在循环中,只有在你真正需要它的时候才启动服务。
关于handler的使用例子,这里有教程:http://www.vogella.com/articles/AndroidPerformance/article.html
你应该做的是:
Handler handler = new Handler();
handler.postDelayed(new Runnable() { /* comparison work */ }, EXEC_INTERVAL);
关于java - Android AlarmManager 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273376/