2012-12-05 25 views
3

我是一個初學者的Android程序員,我似乎有一個問題: 我打開新activitys,與機器人 - 結束()關閉應用程序,而不是活性

Intent newGameIntent = new Intent(actionName); 
startActivity(newGameIntent); 

和萬物正常工作時,活動開始。 但是當我打電話完成()它不去往previus活動,它只是關閉應用程序(沒有錯誤或其他日誌messeges)

有沒有人有一個想法,爲什麼發生? 感謝您的時間!

的要求,這裏是更多的代碼(那我可能已經完全screwd了的東西): 第一個活動:

@Override 
protected void onStop() { 
    super.onStop(); 
    SplashScreen.sounds.releasSounds(); 
    finish(); 
} 
@Override 
protected void onPause() { 
    super.onPause(); 
    pauseActivity(); 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    gameLoop.resumeThread(); 
    SplashScreen.sounds.resumeSounds(); 
} 

private void pauseActivity() { 
    gameLoop.pauseThread(); 
    SplashScreen.sounds.pauseBck(); 
} 

和第一個活動調用秒活動

Intent newGameIntent = new Intent("com.YuvalApps.menus.NEWGAMEMENU"); 
    startActivity(newGameIntent); 

併爲秒活動

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    finish(); 

} 
+0

堆棧中是否還有其他活動? – Atrix1987

+0

你是什麼意思?新活動有可能覆蓋前一個嗎? – Yuval3210

+1

你應該看看這個:http://developer.android.com/guide/components/tasks-and-back-stack.html – Slickelito

回答

1

當一個活動在後臺時,android系統將調用「onStop」方法,但是您在方法「onStop」中調用方法「finish」,因此如果跳轉到另一個活動,上一個活動將被「的onStop」。 您應該在「onStop」方法中刪除「完成」。

+0

哇,非常感謝!不能相信我是那麼愚蠢。猜猜我還沒有完全理解活動的生命週期 – Yuval3210

-1

如果您呼叫完成()關閉當前活動並返回到前一個活動,只需調用onBackPressed()而不是finish(),它將返回到上一個活動。

+0

如果您看到源代碼,您會發現,onBackPressed只需調用finish()。這是有道理的 - >從活動堆棧彈出一個項目 – Atrix1987

+0

仍然關閉應用程序...我不認爲完成()是我的問題,因爲當我在我的第二個活動,(沒有關閉我的第一個,只是打開第二個)我按後退按鈕它關閉應用程序,並不返回到第一個活動 – Yuval3210

+0

您可以添加任何活動的代碼,以便我們可以找到該錯誤? – viks

相關問題