2016-07-28 10 views
6

मैं FusedLocationProviderApi के साथ देख रहा हूं और खेल रहा हूं। यही कारण है कि वर्ग इन दोनों तरीकों में शामिल हैं:स्थान लिस्टनर स्थान कॉलबैक क्या अंतर है?

PendingResult<Status> requestLocationUpdates(GoogleApiClient client, LocationRequest request, LocationCallback callback, Looper looper) 

PendingResult<Status> requestLocationUpdates(GoogleApiClient client, LocationRequest request, LocationListener listener, Looper looper) 

वे बहुत समान हस्ताक्षर और फर्क सिर्फ इतना है कि एक होने के साथ वर्णन हो LocationCallback का उपयोग करता है और अन्य उपयोगों LocationListener

void onLocationAvailability(LocationAvailability locationAvailability) 

void onLocationResult(LocationResult result) 

और इंटरफ़ेस LocationListener सिर्फ एक विधि

abstract void onLocationChanged(Location location) 

LocationCallback में अतिरिक्त विधि की अनदेखी, क्या इन दोनों के बीच का अंतर है परिभाषित करता है:

सार वर्ग LocationCallback दो तरीकों को परिभाषित करता है? क्या कोई वैचारिक अंतर या विशेष उपयोग केस है जो दूसरे को बेहतर बनाता है? कार्यक्षमता को डुप्लिकेट करने में तर्क क्या है?

उत्तर

11

आप ध्यान दें जाएगा onLocationResult() देता है कि एक LocationResult - एक मामला आप अक्सर अगर आप ठीक ढंग से setMaxWaitTime() की स्थापना करके स्थान अनुरोध batching रहे हैं में चलाने होगा - यह यह बहुत आसान एक साथ कई स्थानों प्राप्त करने के साथ निपटने के लिए बनाता है।

यदि आप पुराने LocationListener का उपयोग करने का विकल्प चुनते हैं, तो आपको बैचिंग के दौरान onLocationChanged() पर कई कॉलबैक प्राप्त होंगे।

+0

हम्म। यह बैचिंग दिलचस्प लग रहा है। अगर मुझे यह अधिकार मिलता है तो मैं 10 सेकंड के अंतराल के साथ एक स्थानRequest बना सकता हूं और मैक्सवाइटटाइम को 100 सेकंड में सेट कर सकता हूं और फिर एक स्थान Result में सभी 10 (या अधिक या कम) स्थान प्राप्त कर सकता हूं। उपयोगी हो सकता है। Upvoted। – f470071

+3

हाँ! और कई आधुनिक फोनों पर, बैचिंग सीधे जीपीएस चिप पर की जाती है, जिसका अर्थ है कि मुख्य सीपीयू को बैचों के बीच जागने की जरूरत नहीं होती है, जिससे कुछ सुंदर प्रभावशाली बैटरी सुधार होते हैं। – ianhanniballake

+2

मुझे छोटे उत्तरों से प्यार है जो मुझे बताता है कि मुझे क्या पता होना चाहिए! – Opus1217

संबंधित मुद्दे