所以,我有一个带有启动画面的应用程序,它会在加载完成后启动另一个 Activity 。当用户在加载时点击主页按钮时,应用程序会进入后台,然后在该 Activity 启动后返回前台。有什么办法可以阻止这种情况发生吗?
最佳答案
两件事:
首先,确保您正在拆除对 onPause
中位置服务的引用。我假设您使用的是 Google 的 API 客户端。如果你不是,你真的应该是。所以在 onPause
中,确保取消注册监听器:
@Override
public void onPause()
{
// Tear down Google API Client.
if (googleApiClient != null)
{
if (googleApiClient.isConnected())
{
// Turn off location polling.
LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
}
// Avoid leaks by making sure callbacks get unregistered.
googleApiClient.unregisterConnectionCallbacks(this);
googleApiClient.unregisterConnectionFailedListener(this);
googleApiClient.disconnect();
}
}
但是:我认为您对这个问题的解决方案考虑过度了。为什么有两个 Activity ?为什么不一个,并在您获得位置修复之前处于“等待状态”?您的等待状态可以是任何状态。或者如您所说的全屏启动(使用 RelativeLayout
并堆叠 View )。修复后,淡出飞溅。
然后将位置存储到 savedInstanceState
包中。当您的 Activity 状态发生变化时,您将知道不再显示启动画面。
关于android - 启动 Activity 时停止应用程序进入前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788053/