[英]OnStop() is called after onStart()
在我的应用程序中,我正在使用robospice。 因此,在我的BaseActivity中,创建了一个香料管理器:
@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()-因此它将断开服务。 有什么想法如何解决吗?
不知道我是否正确理解了您的问题。 但是,如果我确实这样做,我想您会遇到问题,因为在开始新活动后会调用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();
}
}
希望这可以帮助。
只需添加一些布尔标志并在开始另一个活动之前进行切换即可。 另外,将onStop方法更改为:
protected void onStop() {
if (spiceManager.isStarted() && !mIsStartedNewActivity) {
spiceManager.shouldStop();
}
super.onStop();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.