ניהול התקשרות חזרה לגדרות

אחרי שמירת הגדרת הגדרה, צריך להוסיף לאפליקציה קריאה חוזרת (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);
        }
    }
}