2013-07-09 177 views
0

我是Android的初學者,正在開發我的大學最終項目。我有一個問題,我不知道如何解決或如何開始。當我啓動我的應用程序時,我與它進行交互,然後按模擬器上的主頁按鈕。我做任何其他的事情,然後我按下按鈕,看看打開的應用程序,並選擇我的應用程序,然後打開它的確切情況,當我離開它去家裏...這就是我想要的,但如果一邊運行我應用程序我換到另一個應用程序或回家,我從菜單啓動應用程序(按菜單,並在網格中找到我的應用程序,然後點擊圖標),它從啓動活動啓動應用程序,作爲一個新實例,覆蓋以前應用狀態...Android應用程序狀態從啓動狀態恢復 - 恢復狀態

什麼是錯誤?我應該提供什麼信息來獲得一些指導?

非常感謝您提前原諒我凌亂的解釋... 米格爾

PD:我試圖找到同樣的問題,但是我發現沒有什麼,因爲我甚至不知道該怎麼谷歌.. ..對不起

+0

http://developer.android.com/guide/topics/resources/runtime-changes.html是一個開始的地方。也請看http://developer.android.com/training/basics/activity-lifecycle/index.html – techiServices

回答

0

將您的應用程序的狀態保存在活動的onPause()內。放置您的代碼,以在活動內的onResume()之內恢復您的應用程序的狀態。這是Activity lifecycle的一部分。

只是不要讓onResume()誤導性語言混淆你。在這種情況下恢復的是UI線程,所以即使應用程序最初開始時(當UI出現時),該方法也會被調用。

如果您在解決此問題時遇到問題,請將您的活動代碼發佈到您的問題中。

1

也許,你應該瞭解的Android活動的生命週期第一。 http://developer.android.com/images/activity_lifecycle.png

然後,你必須重寫所有這些方法(在diagrom給出),你應該使用調試器來了解如何,何時,該方法被調用,並在任何情況下記下的活動狀態。方法是:

@Override 
protected void onPause() { 
    super.onPause(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
} 

@Override 
protected void onRestart() { 
    super.onRestart(); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
} 

然後重寫它們,您可以添加自己的代碼來維護/保存活動狀態。

+0

你可以在這裏獲得有關android活動生命週期的簡要細節。 http://developer.android.com/reference/android/app/Activity.html –

+0

我會試試這個......我認爲這是這樣的,因爲我擁有關於onCreate初始化的所有內容......但爲什麼它在第一種情況下工作?是否因爲該應用程序尚未銷燬?謝謝 :) – mamoreno