设置特定时间的计时器,而不是间隔

Hem*_*tvc 2 time android

有没有办法设置一个特定时间的计时器,而不是设置一个间隔的计时器(即计时器在X(毫秒)/分钟/小时后熄灭)?

我需要每天拨打电话(编程方式),完全是在11:59.

Luc*_*fer 8

您可以使用AlarmManager类重复操作.

Calendar calendar = Calendar.getInstance();
// 11:59 PM 
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 0);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent(context, MyClass.class),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
Run Code Online (Sandbox Code Playgroud)

现在创建一个名为MyClass的BroadcastReceiver

public class MyClass extends BroadcastReceiver 
{
        public void onReceive(Context context, Intent intent) 
        {
              // Write your function code here
        }
}
Run Code Online (Sandbox Code Playgroud)

即使您的设备处于睡眠模式,AlarmManager也能正常工作.AlarmManager可帮助您在轻量级模式下创建调度重复任务,而不是创建长代码以再次调用方法.