2015-04-16 15 views
1

我有一個Activity,我想在不致電onDestroy()的情況下關閉它。所以我用onStop();它看起來像使用onStop進行解除綁定服務

@Override 
    public void onStop(){ 
     super.onStop(); 
     try{ 
      unbindService(mServerConn); 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 

我運行的代碼,但活動仍屏幕

你能幫我隱藏在可見? 謝謝!

+0

檢查此鏈接http://stackoverflow.com/questions/5911101/how-to-send-my-activity-to-background-and-resume – Piyush

+0

林有點困惑。您是否想要關閉該活動(即將其從堆疊中彈出並返回或轉到其他活動),或者您想在活動結束時停止服務嗎? – zafrani

+0

是你停止呼叫 –

回答

2

用法是不是在這種情況下是正確的。如果您需要關閉活動,請使用finish()

Intent openStartingPoint = new Intent(this, MainActivity.class); 
openStartingPoint.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(openStartingPoint); 
finish(); 

這應該很好。

1

你不應該叫onStop()但你可以去這樣的:

Intent startMain = new Intent(Intent.ACTION_MAIN); 
startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 

這將調用onStop()帶領你的主屏幕。

0

使用System.exit(0);關閉時不調用當你的活動是不是 前臺用戶可見onDestroy().

+1

這不是退出活動的正確方法。 –

+0

但是,我認爲這種只有在不調用onDestroy()&onStop() – Nooh

+0

才能退出的情況下,以這種方式停止'''JVM''是不正確的。資源可能保持未釋放,狀態可能會丟失等... –

1

onStop()將被調用。

所以,如果你的活動是當前用戶可見,那麼就意味着 onStop()尚未從Android框架

叫你的做法是正確的。您是onStop()服務中解除這是正確的方式。

我想你的應用程序將運行正確,沒有必要修改

致謝onStop()