3

我有一个小问题......比其他任何事情都需要一些技巧和例子......我需要比较两个字符串,其中一个来自设备上的当前日期,另一个是一个日期我写。所以这个比较可以随时进行。如果这个比较是真的运行各种命令。

我创建了一个调用循环一服务的 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);

做我需要的更好的方法是什么?

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

如果你能给我一些例子,非常感谢..提前谢谢!

4

1 回答 1

3

据我所知,您在“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);
于 2012-04-23T00:39:35.500 回答