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 von Fences zu verarbeiten.
Bevor Sie einem Fence Callbacks hinzufügen, müssen Sie ihn zuerst registrieren.
Unterklasse von BroadcastReceiver erstellen
Das folgende Beispiel zeigt die Klasse FenceReceiver, die BroadcastReceiver erweitert. Die Klasse implementiert die
BroadcastReceiver.onReceive() Callback-Methode, um alle Intent Methoden
zu verarbeiten, die von Fences stammen, die von Ihrer App erstellt wurden. Wenn ein Intent empfangen wird, wird die
FenceState.extract()
Methode verwendet, um den Fence-Status abzurufen und an den Callback 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);
}
}
}