我想安排一个每分钟运行一次的后台任务,并检查条件,直到Android中的条件为True

时间:2016-05-29 18:25:45

标签: android scheduled-tasks alarmmanager

我正在设计基于生日的Android应用。此应用程序检查当前系统日期,如果日期是出生日期,应用程序将启动音乐并允许其他活动。否则,该应用程序将给出错误消息,等待出生日期和退出。

以下是示例代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date dateobj = new Date();
        Date date1 = sdf.parse(sdf.format(dateobj));
        Date date2 = sdf.parse("2016-05-30");
        if (date1.compareTo(date2) >= 0) {
// Start a music
//Other task
}
else
{ 
// You need to wait message 
}

现在,我想要在每60秒(1分钟)后自动检查这个条件,即使应用程序未打开 [可能是alarmManager可能有帮助,但我不确定如何],某事像一个后台任务。应该重复此任务,直到条件成立为止。

如果用户在出生日期之前打开应用程序,则会显示错误提示并关闭应用程序。

1 个答案:

答案 0 :(得分:-1)

您应该使用AlarmManager setRepeating函数来实现这一点。请查看此链接了解详情 - https://developer.android.com/training/scheduling/alarms.html

至于运行代码的要求,即使它没有打开,你也应该使用BroadcastReceiver。您需要将BroadcastReceiver作为PendingIntent传递给AlarmManager。