Zaun-Callbacks verwalten

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);
        }
    }
}