我已经搜索了很多地方但是找不到如何使用AlarmManager每天在特定时间启动服务(或者如果那不可能那么活动)的清晰顺序解释?
我想注册几个这样的警报并触发它们应该导致服务启动.我将在服务中有一小段代码,然后可以执行,我可以完成服务....
Calendar cal = Calendar.getInstance();
Calendar cur_cal = Calendar.getInstance();
cur_cal.setTimeInMillis(System.currentTimeMillis());
Date date = new Date(cur_cal.get(Calendar.YEAR), cur_cal.get(Calendar.MONTH), cur_cal.get(Calendar.DATE), 16, 45);
cal.setTime(date);
Intent intent = new Intent(ProfileList.this, ActivateOnTime.class);
intent.putExtra("profile_id", 2);
PendingIntent pintent = PendingIntent.getService(ProfileList.this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pintent);
System.out.println("The alarm set!!");
Run Code Online (Sandbox Code Playgroud)
我尝试使用此代码在4.45激活警报...但它没有启动服务...我是否必须保持进程运行?我做错了什么?
还有一件事,如果我使用以下代码,我的服务将完美执行:
long firstTime = SystemClock.elapsedRealtime();
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 30*1000,pintent);
Run Code Online (Sandbox Code Playgroud)