Java 在安卓系统中,我如何在每天上午12点到下午6点之间安排60分钟的工作时间?
这是我每天下午3点打电话的代码:Java 在安卓系统中,我如何在每天上午12点到下午6点之间安排60分钟的工作时间?,java,android,Java,Android,这是我每天下午3点打电话的代码: long INTERVAL_MSEC=24*60*60*1000; Date date2am=new java.util.Date(); 日期凌晨2时整(15); 日期凌晨2点,设定分钟数(0); 定时器=新定时器(); TimerTask任务=新的TimerTask(){ 公开募捐{ Intent callIntent=新意图(Intent.ACTION\u调用); callIntent.setFlags(Intent.FLAG\u ACTIVITY\u NE
long INTERVAL_MSEC=24*60*60*1000;
Date date2am=new java.util.Date();
日期凌晨2时整(15);
日期凌晨2点,设定分钟数(0);
定时器=新定时器();
TimerTask任务=新的TimerTask(){
公开募捐{
Intent callIntent=新意图(Intent.ACTION\u调用);
callIntent.setFlags(Intent.FLAG\u ACTIVITY\u NEW\u TASK);
String finalPhonenumber=Globals.sms1PhoneNumbers.get(rad).number+getResources().getString(R.String.extension);
setData(Uri.parse(“tel:+finalPhonenumber”);
星触觉;
}
};
timer.scheduleAtFixedRate(任务、日期凌晨2点、间隔毫秒);
现在,我需要在每天上午12点到下午6点之间每隔60分钟打一次电话-我如何才能做到这一点?您需要创建一个闹钟,如下所示,该闹钟在上午12点或00:00运行:
private void startat12() {
AlarmManager alarmManager;
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 00);
c.set(Calendar.MINUTE, 00);
Long milliseconds = c.getTimeInMillis();
Long daily = 24L * 60L * 60L * 1000L;
//check if the time is already passed
if (milliseconds < System.currentTimeMillis()) {
//if already passed then push it for next day by adding just 24 hrs
milliseconds = milliseconds + daily;
}
Intent intent = new Intent(YourActivity.this, MyReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(YourActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, milliseconds, pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, milliseconds, pendingIntent);
}
String dateFormat = "dd/MM/yyyy HH:mm";
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
Toast.makeText(this, "Alarm is set for " + formatter.format(milliseconds), Toast.LENGTH_SHORT).show();
}
}
并在清单中包含唤醒锁定权限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
还有你的接收人:
<receiver android:name=".Notificationtwo.MyReceiver"/>
您确定我可以在Alarm Manager中定义持续时间吗?请查看Firebase作业调度器,它在基于unix的系统上用于执行此类操作。您可以做的是将闹钟设置为在凌晨12点呼叫您的服务(您可以得到从现在到该时间段的秒数)。现在将下一个闹钟设置为60分钟,然后设置为6小时。(在你的闹钟设定器中,你可以得到当前时间来知道应该给出的时间差)。你需要每天运行这个吗?每天从上午12点到下午6点
<receiver android:name=".Notificationtwo.MyReceiver"/>