2014-04-15 48 views
2

我製作了我的應用程序HOME應用程序,以便當您按HOME按鈕時,您將被重定向到我的應用程序。從我的應用程序中,您可以打開瀏覽器等其他應用程序,然後通過按BACK或HOME鍵返回到我的應用程序。 現在的問題是,我需要知道用戶何時返回使用HOME以及何時使用BACK鍵。 我試圖打印Intent信息,但它在兩種情況下似乎都是一樣的。Android通過HOME或BACK鍵檢測活動

編輯我在使用getIntent()檢查onResume的意圖。重寫onNewIntent方法後,我現在在用戶返回使用HOME按鈕時獲得不同的意圖,但是當按下BACK時,不會調用此方法。是否安全地假設,如果調用了android.intent.category.HOME的onNewIntent,那麼用戶使用HOME按鈕返回,否則使用BACK按鈕返回?

+0

我認爲intent必須是不同的標誌 –

+0

我在活動中使用getIntent(),但我認爲這是正常的,在這兩種情況下數據都是相同的,因爲在這兩種情況下,我的應用程序只是恢復和getIntent )返回可能與首先創建我的應用程序的返回值相同。 – SMart

+0

您可以使用getAction()函數查看Intent的操作。數據將是相同的,但操作可能會有所不同。 – tasomaniac

回答

1

onNewIntent()在應用程序運行時觸發,並且接收另一個啓動的意圖。這就是爲什麼當您按下HOME時看到它。

當按下BACK時,您的應用程序不會收到意圖。發生的一切就是移除你上面的應用程序。所以你的應用程序出現在後臺堆棧中,只有onResume()被調用。

這就是你可以說的。


對於感興趣,你可以看看爲老發射器的源代碼在網上,你會看到onNewIntent()用於重新中心的主頁上的發射器視圖,即它可以幫你看看HOME鍵被按下兩次。

幾個月前(2013年底)我正在探索這個確切的主題,並且看着生產啓動器代碼確實有幫助。