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