簡體   English   中英

內部類內部的變量訪問

[英]Variable access from within inner class

我在Awareness API中創建了一個用於檢查隔離狀態的函數。 但是我需要返回結果。 因此,我聲明了布爾值,但需要將其聲明為最終值。 您能為我提供解決方案如何返回此值的方法嗎?

public static boolean isFencesActive(final Context context) {

    boolean isActive;

    Awareness.getFenceClient(context).queryFences(FenceQueryRequest.forFences(Arrays.asList(Constans.DETECTION_FENCE_DRIVING, Constans.DETECTION_FENCE_WALKING)))
            .addOnSuccessListener(new OnSuccessListener<FenceQueryResponse>() {

                @Override
                public void onSuccess(FenceQueryResponse fenceQueryResponse) {

                    FenceStateMap map = fenceQueryResponse.getFenceStateMap();
                    isActive = !map.getFenceKeys().isEmpty(); //Needs to be final
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                    Log.d(TAG, "Failed: " + e);
                    isActive = false;
                }
            });

    return isActive;
}

@Dim,您必須使用如下代碼(使用您要實現的功能):

public static void isFencesActive(final Context context) {
   Awareness.getFenceClient(context).queryFences(FenceQueryRequest.forFences(Arrays.asList(Constans.DETECTION_FENCE_DRIVING, Constans.DETECTION_FENCE_WALKING)))
            .addOnSuccessListener(new OnSuccessListener<FenceQueryResponse>() {

                @Override
                public void onSuccess(FenceQueryResponse fenceQueryResponse) {

                    FenceStateMap map = fenceQueryResponse.getFenceStateMap();
                    if(!map.getFenceKeys().isEmpty()){
                      //Perform your operation here is the better way
                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.d(TAG, "Failed: " + e);
                }
            });
}

經過一番考慮,我了解到這是異步任務,這就是為什么我收到錯誤消息的原因。 我所做的是創建將這些信息發送到我的活動的回調。

這可能對您有幫助,請聲明boolean isActive; 全局變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM