android - 在特定日期和时间使用 Alarmmanager 启动服务并重复

标签 android alarmmanager repeat

我想创建提醒应用

我搜索了很多地方,但找不到关于如何在每天的特定时间使用 AlarmManager 启动服务(或者如果不可能,则启动 Activity )的清晰顺序说明?

我想在特定日期和时间开始服务,例如在该日期后六个月再次开始服务并继续此循环

Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());//set the current time and date for this calendar

Calendar cal = new GregorianCalendar();
cal.add(Calendar.YEAR, 2018);
cal.set(Calendar.MONTH, 2);
cal.set(Calendar.DAY_OF_MONTH, 12);
cal.set(Calendar.HOUR_OF_DAY, 9);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);

Intent intent = new Intent(ProfileList.this, BroadcastedReceiver.class);
PendingIntent pintent = PendingIntent.getService(ProfileList.this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1000, pintent);

我尝试使用此代码在 2018 年 2 月 12 日 9:00 激活警报...这在这个日期有效,但我在例如六个月后重复时遇到问题...如何将代码更改为每六个月开始服务?

注意:日期存储在数据库中,将从那里调用它们

最佳答案

    public class AddService extends Service
    {
        InterstitialAd mInterstitialAd;
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
           //Your Logic
            stopSelf();
            return START_NOT_STICKY;
        }

        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }

        @Override
        public void onDestroy() {
            AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
            alarmManager.set(alarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000*60*60),
                    PendingIntent.getService(this,0,new Intent(this,AddService.class),0));
        }
    }

// Here your service will call every 1 hour, you can change time according to that

关于android - 在特定日期和时间使用 Alarmmanager 启动服务并重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233608/

相关文章:

Java Android 应用程序和 Node.js + Express.js API

java.lang.NullPointerException : Attempt to invoke virtual method 'RecyclerView$ViewHolder.shouldIgnore()' on a null object reference

android - 警报管理器在特定的给定时间间隔内不工作

android - 我想设置每天在不同时间触发的重复闹钟

r - 将存在/不存在矩阵转换为顶点连接的 Data.frame。 (删除具有eeuqal无序值的重复行)

repeat - ui :repeat in jsf 2. 2 正在工作但已呈现

android - 在 Android 应用程序中重复背景横幅

android - repo :在自动 bash 脚本中找不到用于构建 cyanogenmod 的命令

Android:InflateException:二进制 XML 文件行:膨胀类 <unknown> 时出错

java - 开机后多次报警重启