Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中更改AlarmManager在运行时的重复间隔_Android - Fatal编程技术网

如何在Android中更改AlarmManager在运行时的重复间隔

如何在Android中更改AlarmManager在运行时的重复间隔,android,Android,我编写了以下AlarmManager来启动服务,该服务将以指定的间隔下载文件: Calendar updateTime = Calendar.getInstance(); updateTime.setTimeZone(TimeZone.getDefault()); updateTime.set(Calendar.HOUR_OF_DAY, 7); Intent downloader = new Intent(mActivity, FileDownloadServic

我编写了以下
AlarmManager
来启动
服务
,该服务将以指定的间隔下载文件:

    Calendar updateTime = Calendar.getInstance();
    updateTime.setTimeZone(TimeZone.getDefault());
    updateTime.set(Calendar.HOUR_OF_DAY, 7);
    Intent downloader = new Intent(mActivity, FileDownloadService.class);
    downloader.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(mActivity, 0, downloader, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
从应用程序的另一部分,我得到运行
服务的repeatedinterval的值。重复间隔的值每天都会更改

由于上述代码只执行一次,我们如何在运行时更改
AlarmManager
间隔

例如,在第1天,我希望重复间隔为15分钟,在第2天,我希望间隔为2小时


如何动态更改重复间隔?

将值15分钟作为额外值存储在挂起的意图中。当您的代码被alarm manager触发时,获取当前值,根据您的需要增加该值,并按照保存该值的意图重置额外值


编辑:使用alarmManager.set(int类型、长触发器、挂起操作);在每次新调用代码时。

@vishwajitplankar:请不要只添加
代码标记
。修复所有问题,如语法、大小写、“您好”和“提前感谢”。根据我的理解,我必须再次调用alarmManager.setRepeating()方法。@geekoraul无论如何,我们可以在这里得到一个代码示例吗?