ניהול קריאה חוזרת (callback) לגדר

לאחר רישום הגדר, האפליקציה צריכה להוסיף קריאה חוזרת כדי להגיב כשהפעילות מופעלת. אפשר לעשות זאת באמצעות סיווג משנה של 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);
        }
    }
}