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