GoogleApiClient се извиква всеки път, когато екранът на устройството се изключи и включи отново

Тъй като имам нужда от местоположението на потребителите за моята асинхронна задача, използвам API на LocationServices, за да получа географската ширина и дължина на потребителите. след това в onConnected изпълнявам async задачата. Правя това в onConnected, а не в onCreate, тъй като имам нужда от местоположението на потребителите.

Проблемът е, че всеки път, когато изключа и включа екрана отново, onConnected се извиква отново, което кара асинхронната задача да се изпълни отново.

Ето моите методи за GoogleApiClient.

    @Override
    public void onStart() {
    Log.e("Connected?", String.valueOf(mGoogleApiClient.isConnected()));
        mGoogleApiClient.connect();

        super.onStart();

    }

    @Override
    public void onStop() {
        mGoogleApiClient.disconnect();
        super.onStop();
    }

    @Override
    public void onConnected(Bundle bundle) {
        Log.i("onConnected", "onConnected called"); //called everytime screen is turned off and on again
        new asynctask().execute();
    }

    @Override
    public void onConnectionSuspended(int i) {
    }

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        Log.i("ConnectionFailure", "onConnetion failed");
    }

Всяка помощ ще бъде много ценена. Благодаря.


person HaloMediaz    schedule 09.08.2015    source източник
comment
използвайте флаг, за да изпълните оператора само веднъж   -  person spezzino    schedule 10.08.2015
comment
Великолепна идея. Реших проблема ми :)   -  person HaloMediaz    schedule 10.08.2015
comment
моля, приемете моя отговор @HaloMediaz   -  person spezzino    schedule 10.08.2015


Отговори (1)


използвайте флаг, за да изпълните оператора само веднъж

person spezzino    schedule 10.08.2015