我的问题是我需要在24小时后调用一个在android中初始化东西的函数。如果我忙着等待,那么如果等待的时间段像1分钟一样小,那么初始化就会发生但是如果我让它等待24小时则不会调用该功能。 繁忙的等待代码是
public void waitSecond(){
Thread.sleep(1000);
}
public void waitMinute(){
for ( int i = 0;i < 60; i++){
waitSecond();
}
}
public void waitHour(){
for (int i = 0;i<60;i++){
waitMinute();
}
}
public void waitDay()[
for(int i = 0; i < 24;i++){
waitHour();
}
}
一种方法是我使用闹钟来解决这个问题。但是我怎么知道警报已经结束,然后我怎么能在此基础上调用一个函数。
public static void setRepeatingSync(Context context) {
try {
AlarmManager alarmMgr = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), (24 * 1000 * 60 * 60),
alarmIntent); //every 24 hours
} catch (Exception e) {
e.printStackTrace();
}
}