当活动开始时停止应用程序进入前台
问题描述:
因此,我有一个启动屏幕的应用程序,一旦完成加载就启动另一个活动。当用户在加载时点击主页按钮时,应用程序将转到后台,然后在该活动启动后回到前台。有什么办法可以阻止这种情况发生?当活动开始时停止应用程序进入前台
答
两件事情:
首先,确保你在拆除参考位置服务。我假设你正在使用Google的API客户端。如果你不是,你应该是。因此,在,请确保您注销听众:
@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
包。当你的活动状态改变时,你会知道不再显示飞溅。
+0
谢谢,将主屏幕覆盖在主要活动的顶部似乎是正确的方式,并感谢关于使用GoogleAPIClient的提示。 – dramzy
简单的解决方案,但不是答案:没有闪屏。更严重的是,您可以在开始下一步之前检查活动状态。或者当飞溅停止时,您可以取消您的加载。 – njzk2
我宁愿没有启动画面,但我需要掩盖在用户位置获得修复的初始延迟。我想开始这个活动,但是在没有它的背景下,它会回到前台。我希望有一个简单的意图标志来这样做,而不是以编程方式干涉活动的状态。 – dramzy
在后台启动一项活动?听起来更像是一种服务。 – njzk2