android位置服务和活动生命周期

时间:2014-07-22 16:34:03

标签: android google-play-services activity-lifecycle

我有一个实现GooglePlayServicesClient.ConnectionCallbacks的Activity。按下启动器图标后,会立即计算该位置,因为根据我在onCreate之前运行的onConnected日志。以下是可能的吗?

在最初安装我的应用并打开它之后,计算位置。进一步的计算需要用户按下刷新按钮。

我这样做是因为我使用该位置立即打开一个DialogFragment,其中包含与该位置相关的数据。在对话框中选择某些内容后,用户会在“对话框所属的活动”中看到结果。

因此,如果用户停留在同一地区,我不希望他每次打开应用程序时都会弹出一个对话框,它应该只显示之前填充的活动。

@Override
public void onConnected(Bundle dataBundle) {
    Log.d("MY_DEBUG", "In SelectActivity's onConnected.  Successfully connected to loc services");
    mCurrentLocation = mLocationClient.getLastLocation();
    // Display the connection status
    Toast.makeText(this, "Connected", Toast.LENGTH_SHORT).show();
    showListingDialog();
}

1 个答案:

答案 0 :(得分:0)

你可以在你的类上添加一个布尔标志,如下所示:

private boolean didShowListingDialog = false;

...你在showListingDialog中检查并设置为true,如下所示:

private void showListingDialog() {
    if (!didshowListingDialog) {
        didshowListingDialog = true;
        // show the dialog here
    }
}

如果您希望再次显示该对话框,可以将该标志设置为false。