每次设备屏幕关闭再打开时都会调用 GoogleApiClient
GoogleApiClient called every time device screen is turned off and on again
因为我的异步任务需要用户位置,所以我使用 LocationServices api 来获取用户的纬度和经度。然后在 onConnected 中,我执行异步任务。我在 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");
}
如有任何帮助,我们将不胜感激。谢谢。
使用标志只执行一次语句
因为我的异步任务需要用户位置,所以我使用 LocationServices api 来获取用户的纬度和经度。然后在 onConnected 中,我执行异步任务。我在 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");
}
如有任何帮助,我们将不胜感激。谢谢。
使用标志只执行一次语句