จัดการโค้ดเรียกกลับของรั้ว

เมื่อลงทะเบียนรั้วแล้ว แอปของคุณต้องเพิ่มการเรียกกลับเพื่อตอบสนองต่อ เมื่อเรียกใช้รั้ว ซึ่งทําได้โดยใช้คลาสย่อยของ BroadcastReceiver เพื่อจัดการเมธอด Intent จากรั้ว

ก่อนที่จะเพิ่มการเรียกกลับในรั้ว คุณต้องลงทะเบียนรั้วก่อน

สร้างคลาสย่อยของ BroadcastReceiver

ตัวอย่างต่อไปนี้แสดงคลาส FenceReceiver ซึ่งขยาย BroadcastReceiver คลาสนี้จะนําวิธีเรียกกลับ BroadcastReceiver.onReceive() มาใช้จัดการเมธอด Intent ทั้งหมดที่มาจากรั้วที่แอปสร้างขึ้น เมื่อได้รับ Intent แล้ว ระบบจะใช้เมธอด FenceState.extract() เพื่อรับสถานะรั้วและส่งต่อไปให้โค้ดเรียกกลับ

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