Java Android AlarmManager服务

Java Android AlarmManager服务,java,android,service,alarmmanager,Java,Android,Service,Alarmmanager,我有一个小问题…比什么都重要我需要一些提示和例子。。 我需要运行两个字符串的比较,其中一个来自设备上的当前日期,另一个是我写入的日期。因此,这种比较可以在任何时候进行。。 如果此比较为真,请运行各种命令 我已经创建了一个AlarmManager,它调用loop one服务,并且在这个服务中提供了我需要的比较 private static final int EXEC_INTERVAL = 10 * 1000; Intent myIntent = new Intent(AndroidAlarmS

我有一个小问题…比什么都重要我需要一些提示和例子。。 我需要运行两个字符串的比较,其中一个来自设备上的当前日期,另一个是我写入的日期。因此,这种比较可以在任何时候进行。。 如果此比较为真,请运行各种命令

我已经创建了一个AlarmManager,它调用loop one服务,并且在这个服务中提供了我需要的比较

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);
做我需要的事情,什么方法更好

我用这个?还是需要广播接收机


如果你能给我举一些例子,我将不胜感激。。提前谢谢

据我所知,您正在“MyAlarmService”中每10秒准时进行一次测试,对吗

如果是这样,我的建议是使用Handler而不是AlarmManager。根据android文档(http://developer.android.com/reference/android/app/AlarmManager.html),您应该使用处理程序来执行计时操作

此外,您可能不需要在每次运行测试时启动服务。服务不是您应该持续启动的东西,您可能希望将测试代码放入循环中,并且只在您真正需要时启动服务

关于使用handler的示例,这里有一个教程:

你应该做的是:

Handler handler = new Handler();
handler.postDelayed(new Runnable() { /* comparison work */ }, EXEC_INTERVAL);

非常感谢,但我需要循环执行,即使设备进入睡眠模式。你的意思是:你可能想把测试代码放在循环中?