Android 报警管理器未启动
在我的代码中,Android 报警管理器未启动,android,alarmmanager,Android,Alarmmanager,在我的代码中,setRepeating()方法上的间隔(第三个参数)似乎不是每5秒触发一次 它在时间上不断增加,就像第一个或第二个主要是在时间上,但是其他的在40+秒之后发射 那么这里怎么了 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState
setRepeating()
方法上的间隔(第三个参数)似乎不是每5秒触发一次
它在时间上不断增加,就像第一个或第二个主要是在时间上,但是其他的在40+秒之后发射
那么这里怎么了
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = new Intent(this, MainActivity2Activity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE );
am.setRepeating(RTC_WAKEUP,System.currentTimeMillis(),1000*5,pi);
}
}
请看这里:
当您每5秒触发一次警报时:
注意:对于计时操作(滴答声、超时等),使用处理程序更容易、更高效。
你的代码没问题。对您遇到的延迟的解释可能是:
注:自API 19起,所有重复报警均不准确。如果您的应用程序需要精确的交付时间,那么它必须使用一次性精确警报,并按上述方式重新安排每次的时间。targetSdkVersion早于API 19的传统应用程序将继续将其所有报警(包括重复报警)视为精确报警。
据我从您的代码中了解,您正在尝试在创建MainActivity.class 5秒后运行MainActivity2Activity.class
我建议您在待定意图中使用当前更新标志,而不是当前取消标志。
_CANCEL_CURRENT标志将保留您的第一个挂起的意图,并且在您首先取消原始挂起的意图之前不会更新或创建新的意图。
使用标志_UPDATE_CURRENT将确保每次执行MainActivity.class时都会更新挂起的意图,以便在创建MainActivity.class的5秒钟后完全触发挂起的意图
希望这有帮助。基本上你写的是挂起的内容。FLAG\u CANCEL\u CURRENT而不是挂起的内容。FLAG\u ONE\u SHOT
报警管理器设置报警的代码
AlarmManager alarmManager = (AlarmManager) getBaseContext().getSystemService(ALARM_SERVICE);
Intent i1 = new Intent(this, ReceiveAlarmActivity.class);
i1.putExtra("Key", "Value");
PendingIntent operation = PendingIntent.getActivity(getBaseContext(), 0, i1, PendingIntent.FLAG_ONE_SHOT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Your_Date.getTime(), 5000 operation);
你必须通过你的约会
完成但即使进程被终止,我也需要该进程运行抱歉,在进程被终止时无法使其运行。