GeofencingRequest 上的 setInitialTrigger 的目的是什么?
what is the purpose of `setInitialTrigger` on GeofencingRequest?
GeofencingRequest
class.
上的函数setInitialTrigger
我真的不明白
我知道我们可以创建一些 Geofence
具有不同过渡的对象:
- 输入
- 退出
- 停留
这对我来说很好并且可以接受。
现在,我的问题是相对于 class GeofencingRequest
,更准确地说是方法 setInitialTrigger
。
我真的不明白我们应该放在那里的价值......
Android 文档 (here) 对于该方法的含义并没有真正帮助。
假设我有这段代码:
private GeofencingRequest getGeofencingRequest() {
GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
builder.addGeofences(mGeofenceList);
return builder.build();
}
GeofencingRequest.INITIAL_TRIGGER_ENTER
是什么意思?
对我来说,这意味着 GeofencingRequest
应该触发任何具有 ENTER 转换的 Geofence
对象。
但假设我有多个具有不同行为进入或退出转换的地理围栏。
我应该如何 handle/implement 使用 GeofencingRequest Builder?
builder.setInitialTrigge 在添加地理围栏时设置 地理围栏通知行为。
您可以使用 3 个常量:
public static final int INITIAL_TRIGGER_DWELL
一个标志,表示地理围栏服务应该在添加地理围栏时触发 GEOFENCE_TRANSITION_DWELL 通知,如果设备已经在该地理围栏内一段时间。
常数值:4
public static final int INITIAL_TRIGGER_ENTER
一个标志,表示地理围栏服务应该在添加地理围栏时触发 GEOFENCE_TRANSITION_ENTER 通知,如果设备已经在该地理围栏内。
常数值:1
public static final int INITIAL_TRIGGER_EXIT
一个标志,表示地理围栏服务应该在添加地理围栏时触发 GEOFENCE_TRANSITION_EXIT 通知,如果设备已经在该地理围栏之外。
常数值:2
GeofencingRequest.INITIAL_TRIGGER_ENTER 是什么意思?
指示地理围栏服务应该在添加地理围栏时触发,如果设备已经在该地理围栏内。
查看时间差:
DWELL = 已经在该地理围栏内一段时间了。
ENTER = 已在该地理围栏内。
EXIT = 已经在该地理围栏之外。
您可以使用
`public GeofencingRequest getGeofencingRequest(Geofence geofence){
return new GeofencingRequest.Builder()
.addGeofence(geofence)
.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_DWELL|
GeofencingRequest.INITIAL_TRIGGER_ENTER|
GeofencingRequest.INITIAL_TRIGGER_EXIT)
.build();
}`
此函数将在 ENTER
、DWELL
、EXIT
中的任何一个发生时触发 GeofenceRequest
GeofencingRequest
class.
setInitialTrigger
我真的不明白
我知道我们可以创建一些 Geofence
具有不同过渡的对象:
- 输入
- 退出
- 停留
这对我来说很好并且可以接受。
现在,我的问题是相对于 class GeofencingRequest
,更准确地说是方法 setInitialTrigger
。
我真的不明白我们应该放在那里的价值......
Android 文档 (here) 对于该方法的含义并没有真正帮助。
假设我有这段代码:
private GeofencingRequest getGeofencingRequest() {
GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
builder.addGeofences(mGeofenceList);
return builder.build();
}
GeofencingRequest.INITIAL_TRIGGER_ENTER
是什么意思?
对我来说,这意味着 GeofencingRequest
应该触发任何具有 ENTER 转换的 Geofence
对象。
但假设我有多个具有不同行为进入或退出转换的地理围栏。
我应该如何 handle/implement 使用 GeofencingRequest Builder?
builder.setInitialTrigge 在添加地理围栏时设置 地理围栏通知行为。
您可以使用 3 个常量:
public static final int INITIAL_TRIGGER_DWELL
一个标志,表示地理围栏服务应该在添加地理围栏时触发 GEOFENCE_TRANSITION_DWELL 通知,如果设备已经在该地理围栏内一段时间。
常数值:4
public static final int INITIAL_TRIGGER_ENTER
一个标志,表示地理围栏服务应该在添加地理围栏时触发 GEOFENCE_TRANSITION_ENTER 通知,如果设备已经在该地理围栏内。
常数值:1
public static final int INITIAL_TRIGGER_EXIT
一个标志,表示地理围栏服务应该在添加地理围栏时触发 GEOFENCE_TRANSITION_EXIT 通知,如果设备已经在该地理围栏之外。
常数值:2
GeofencingRequest.INITIAL_TRIGGER_ENTER 是什么意思? 指示地理围栏服务应该在添加地理围栏时触发,如果设备已经在该地理围栏内。
查看时间差:
DWELL = 已经在该地理围栏内一段时间了。
ENTER = 已在该地理围栏内。
EXIT = 已经在该地理围栏之外。
您可以使用
`public GeofencingRequest getGeofencingRequest(Geofence geofence){
return new GeofencingRequest.Builder()
.addGeofence(geofence)
.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_DWELL|
GeofencingRequest.INITIAL_TRIGGER_ENTER|
GeofencingRequest.INITIAL_TRIGGER_EXIT)
.build();
}`
此函数将在 ENTER
、DWELL
、EXIT
中的任何一个发生时触发 GeofenceRequest