有时开发中有这样的需求,每天几点定时提醒等等,下面就来实现这个功能。
首先新建一个广播接收者
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
("--------收到提醒");
//TODO 实现功能
//重新计时第二天七点的
Intent i = new Intent(context, );
(i);
}
}
然后创建一个服务
public class RemindService extends Service {
int count = 0;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
Long secondsNextEarlyMorning = (8);
Intent i = new Intent(this, );
PendingIntent pi = (this, count++, i, PendingIntent.FLAG_UPDATE_CURRENT);
(AlarmManager.RTC_WAKEUP, () + secondsNextEarlyMorning, pi);
return (intent, flags, startId);
}
}
最后获取当前时间到第二天几点的时间差
public class Utils {
/**
* 获取时间差
*/
public static Long getSecondsNextEarlyMorning(int num) {
Calendar cal = ();
if ((Calendar.HOUR_OF_DAY) - num >= 0) {
//如果当前时间大于等于8点 就计算第二天的8点的
(Calendar.DAY_OF_YEAR, 1);
} else {
(Calendar.DAY_OF_YEAR, 0);
}
(Calendar.HOUR_OF_DAY, num);
(, 0);
(, 0);
(, 0);
Long seconds = (() - ());
return ();
}
}
这样就可以实现每天几点定时任务了。