تماس های حصاری را مدیریت کنید

پس از ثبت یک حصار، برنامه شما باید یک فراخوانی برای پاسخ به هنگام فعال شدن حصار اضافه کند. شما می‌توانید این کار را با استفاده از یک زیرکلاس از BroadcastReceiver برای مدیریت متدهای Intent از حصارها انجام دهید.

قبل از اینکه به یک حصار، فراخوانی‌های برگشتی اضافه کنید، ابتدا باید حصار را ثبت کنید .

یک زیرکلاس از BroadcastReceiver ایجاد کنید

مثال زیر کلاس FenceReceiver را نشان می‌دهد که BroadcastReceiver ارث‌بری می‌کند. این کلاس، متد فراخوانی BroadcastReceiver.onReceive() را پیاده‌سازی می‌کند تا تمام متدهای Intent که از fenceهای ایجاد شده توسط برنامه شما سرچشمه می‌گیرند را مدیریت کند. هنگامی که یک Intent دریافت می‌شود، از متد FenceState.extract() برای دریافت وضعیت fence و ارسال آن به 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);
        }
    }
}