Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/127.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.setRepeating是幂等的吗?_Android_Alarmmanager - Fatal编程技术网

Android AlarmManager.setRepeating是幂等的吗?

Android AlarmManager.setRepeating是幂等的吗?,android,alarmmanager,Android,Alarmmanager,在我的android应用程序中,我设置了一个要重复出现的警报,因此使用AlarmManager.setRepeating() 我不想跟踪报警是否是自己设置的(听起来像是个坏主意,在某个时候很容易失败),而且似乎没有API支持来检查特定的报警是否已经为给定的目的设置 因此,每次我的应用程序激活时,我都会悲观地重置警报: alarmManager.cancel(pendingIntent); ... alarmManager.setRepeating(..., pendingIntent); 问

在我的android应用程序中,我设置了一个要重复出现的警报,因此使用AlarmManager.setRepeating()

我不想跟踪报警是否是自己设置的(听起来像是个坏主意,在某个时候很容易失败),而且似乎没有API支持来检查特定的报警是否已经为给定的目的设置

因此,每次我的应用程序激活时,我都会悲观地重置警报:

alarmManager.cancel(pendingIntent);
...
alarmManager.setRepeating(..., pendingIntent); 
问题:调用setRepeating()幂等元,即我是否需要显式取消()任何先前的报警,或者我是否可以安全地调用setRepeating()并完成它

各州:

如果已经安排了报警 出于同样的目的,它将 首先是取消

我知道这还不完全清楚,但他们说的是
AlarmManager
将检查传递给
setRepeating()
PendingEvent
PendingEvent
。因此,只要您使用的PendingEvent没有更改,您就不需要取消任何以前的报警。
(oldPendingEvent.equals(newPendingEvent)==true)

发件人:


关于这一点的问题-我正在开发一个应用程序,它允许用户设置多个警报,但所有警报都会触发相同的挂起事件。因此,似乎每一个新的将取消前一个。如果我在PendingEvent中使用唯一的requestCode,这会阻止重写吗,或者它们仍然会算作同一个PendingEvent?
equals(Object otherObj)
Comparison operator on two PendingIntent objects, such that true is returned then they both represent the same operation from the same package.