繁体   English   中英

在onStart()之后调用OnStop()

[英]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。

在这种情况下,您可以使用onResumeonPause代替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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM