android实现每天定时提醒的功能

时间:2025-01-30 11:03:49

有时开发中有这样的需求,每天几点定时提醒等等,下面就来实现这个功能。

首先新建一个广播接收者

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 ();
    }

}

这样就可以实现每天几点定时任务了。