Nachdem ein Fence registriert wurde, muss Ihre App einen Callback hinzufügen, um zu reagieren, wenn der Fence ausgelöst wird. Dazu können Sie eine Unterklasse von BroadcastReceiver
verwenden, um Intent
-Methoden aus Fences zu verarbeiten.
Bevor Sie einem Fence Callbacks hinzufügen können, müssen Sie den Fence zuerst registrieren.
Unterklasse von BroadcastReceiver erstellen
Im folgenden Beispiel wird die Klasse FenceReceiver
gezeigt, die von BroadcastReceiver
abgeleitet wird. Die Klasse implementiert die BroadcastReceiver.onReceive()
-Rückrufmethode, um alle Intent
-Methoden zu verarbeiten, die von Zäunen stammen, die von Ihrer App erstellt wurden. Wenn ein Intent
empfangen wird, wird die Methode FenceState.extract()
verwendet, um den Zaunstatus abzurufen und an den Rückruf zu übergeben.
public class FenceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
FenceState fenceState = FenceState.extract(intent);
if (TextUtils.equals(fenceState.getFenceKey(), FENCE_KEY)) {
String fenceStateStr;
switch (fenceState.getCurrentState()) {
case FenceState.TRUE:
fenceStateStr = "true";
break;
case FenceState.FALSE:
fenceStateStr = "false";
break;
case FenceState.UNKNOWN:
fenceStateStr = "unknown";
break;
default:
fenceStateStr = "unknown value";
}
mLogFragment.getLogView().println("Fence state: " + fenceStateStr);
}
}
}