Mengelola callback fence

Setelah fence terdaftar, aplikasi harus menambahkan callback untuk merespons saat fence dipicu. Anda dapat melakukannya dengan menggunakan subclass BroadcastReceiver untuk menangani metode Intent dari fence.

Sebelum menambahkan callback ke fence, Anda harus mendaftarkan fence terlebih dahulu.

Membuat subclass BroadcastReceiver

Contoh berikut menunjukkan class FenceReceiver, yang memperluas BroadcastReceiver. Class ini mengimplementasikan metode callback BroadcastReceiver.onReceive() untuk menangani semua metode Intent yang berasal dari fence yang dibuat oleh aplikasi Anda. Saat Intent diterima, metode FenceState.extract() digunakan untuk mendapatkan status fence dan meneruskannya ke callback.

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