簡體   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