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