在我的应用程序中,我使用了robospice。因此,在我的BaseActivity中,创建了一个spice管理器:
@Override
protected void onStart() {
super.onStart();
if(!spiceManager.isStarted()) {
spiceManager.start(this);
}
}
@Override
protected void onStop() {
if (spiceManager.isStarted()) {
spiceManager.shouldStop();
}
super.onStop();
}但是当我启动新的活动时,新的活动在父onStop()之前调用onStart() -所以它断开了服务的连接。有没有办法解决这个问题?
发布于 2017-02-01 22:40:46
我不确定我是否正确理解了你的问题。但如果我这样做了,我猜你就有问题了,因为你的BaseActivity onStop是在你开始新的活动后调用的。
在这种情况下,您可以使用onResume和onPause,而不是onStart和onStop。
@Override
protected void onResume() {
super.onResume();
if(!spiceManager.isStarted()) {
spiceManager.start(this);
}
}
@Override
protected void onPause() {
super.onPause();
if (spiceManager.isStarted()) {
spiceManager.shouldStop();
}
}希望这能有所帮助。
发布于 2017-02-01 22:55:56
只需添加一些布尔标志,并在开始另一个活动之前切换它。另外,将您的onStop方法更改为:
protected void onStop() {
if (spiceManager.isStarted() && !mIsStartedNewActivity) {
spiceManager.shouldStop();
}
super.onStop();
}https://stackoverflow.com/questions/41981545
复制相似问题