Java 在安卓系统中,我如何在每天上午12点到下午6点之间安排60分钟的工作时间?

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

这是我每天下午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 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"/>