বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

রিকোয়েস্ট করার প্রক্রিয়া শুরু করুন

পরবর্তীতে, একটি পদ্ধতি নির্ধারণ করুন যা লোকেশন সার্ভিসের সাথে সংযুক্ত হওয়ার মাধ্যমে রিকোয়েস্ট প্রক্রিয়া শুরু করে। একটি বৈশ্বিক ভেরিয়েবল সেট করার মাধ্যমে একটি জিওফেন্স যোগ করতে এটাকে একটি রিকোয়েস্ট হিসাবে চিহ্নিত করনি। এটা জিওফেন্স যোগ এবং বিয়োজন করতে আপনাকে কলব্যাক ConnectionCallbacks.onConnected()ব্যবহার করতে দেয় , যেভাবে সাকসেডিং অধ্যায়ে আলোচনা করা হয়েছে।

রেস কনডিশন থেকে রক্ষা করা যা হতে পারে যদি আপনার অ্যাপ প্রথমটি শেষ হওয়ার পূর্বেই অন্য রিকোয়েস্ট করার চেষ্টা করে, একটি বুলিয়ান ফ্ল্যাগ (boolean) নির্ধারণ করুন যা বর্তমান রিকোয়েস্টের অবস্থান অনুসরণ করবে:

public class MainActivity extends FragmentActivity implements
        ConnectionCallbacks,
        OnConnectionFailedListener,
        OnAddGeofencesResultListener {
    ...
    // Holds the location client
    private LocationClient mLocationClient;
    // Stores the PendingIntent used to request geofence monitoring
    private PendingIntent mGeofenceRequestIntent;
    // Defines the allowable request types.
    public enum REQUEST_TYPE = {ADD}
    private REQUEST_TYPE mRequestType;
    // Flag that indicates if a request is underway.
    private boolean mInProgress;
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        // Start with the request flag set to false
        mInProgress = false;
        ...
    }
    ...
    /**
     * Start a request for geofence monitoring by calling
     * LocationClient.connect().
     */
    public void addGeofences() {
        // Start a request to add geofences
        mRequestType = ADD;
        /*
         * Test for Google Play services after setting the request type.
         * If Google Play services isn't present, the proper request
         * can be restarted.
         */
        if (!servicesConnected()) {
            return;
        }
        /*
         * Create a new location client object. Since the current
         * activity class implements ConnectionCallbacks and
         * OnConnectionFailedListener, pass the current activity object
         * as the listener for both parameters
         */
        mLocationClient = new LocationClient(this, this, this)
        // If a request is not already underway
        if (!mInProgress) {
            // Indicate that a request is underway
            mInProgress = true;
            // Request a connection from the client to Location Services
            mLocationClient.connect();
        } else {
            /*
             * A request is already underway. You can handle
             * this situation by disconnecting the client,
             * re-setting the flag, and then re-trying the
             * request.
             */
        }
    }
    ...
}