2012-04-17 175 views
0

我嘗試了以下代碼,以便在用戶嘗試按Home按鈕啓動主屏幕時重新啓動我的活動。發生onSaveInstanceState事件時重新啓動活動

@Override 
public void onSaveInstanceState(Bundle state){ 
    try{ 
     Intent i = new Intent(this, LockerAppActivity.class); 
     startActivity(i); 
    }catch(Exception ex){ 
     Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG); 
    } 
} 

沒有發生異常並且代碼被觸發。但活動並未開始。我究竟做錯了什麼 ?

回答

4

步驟1:刪除您的onSaveInstanceState()實施。

步驟#2:不要嘗試「當用戶嘗試按主頁按鈕啓動主屏幕時重新啓動[您的]活動」,因爲這是不必要的。

步驟3:解決您認爲遇到的任何問題,這些問題會導致您嘗試使用「重新啓動」技術。

例如,給定類名LockerAppActivity,我猜你正在嘗試創建一個容易失敗的「鎖定屏幕」。考慮到任何人都可以超越他們,爲什麼你會困擾,超越了我。無論如何,確保您的應用程序在用戶按HOME時運行的正確方法是成爲主屏幕。

+0

非常感謝。那麼,是的,這正是我想要做的。我正在嘗試創建一個應用程序,使其在啓動時無法運行設備上的其他應用程序。意思是說,這個應用程序是在設備啓動後啓動的,它是唯一允許運行的應用程序。請注意,這不是一個標準的消費者應用程序,而是一個商業應用程序。你如何看待這件事? – 2012-04-17 15:49:49

+0

@HeshanPerera:「你如何看待這件事?」 - 正如我在答案中指出的那樣,讓它成爲主屏幕。它仍然可以通過在安全模式下重新啓動刪除;如果你想阻止*那*,你將需要根設備和/或安裝自定義固件。 – CommonsWare 2012-04-17 15:54:53

+0

再次感謝。你爲我清理了很多東西。 – 2012-04-17 16:04:27

相關問題