所以,我有一个带有启动画面的应用程序,一旦完成加载就会启动另一个活动。当用户在加载时点击主页按钮时,应用程序进入后台,然后在该活动开始后返回到前台。有没有办法阻止这种情况发生?
答案 0 :(得分:1)
两件事:
首先,请确保您在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();
}
}
但是:我认为你已经在考虑解决这个问题了。为什么有两项活动?为什么不是一个,并且等待状态"直到你得到位置修复?你的等待状态可能是任何事情。或者如您所说的全屏启动(使用RelativeLayout
并堆叠视图)。当你得到修复时,淡出飞溅。
然后将该位置存储到savedInstanceState
包。当您的活动状态发生变化时,您就会知道不再显示启动状态。