Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/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 报警管理器未启动_Android_Alarmmanager - Fatal编程技术网

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);
你必须通过你的约会


完成

但即使进程被终止,我也需要该进程运行抱歉,在进程被终止时无法使其运行。