2017-05-05 133 views
0

我爲我的應用程序實施了啓動屏幕。我將啓動屏幕活動作爲啓動活動。啓動活動執行啓動工作(加載數據等),然後啓動「真實」主要活動。啓動屏幕從第三方應用程序啓動時重新顯示

問題是:我正在使用能夠啓動其他應用程序的第三方應用程序。假設我的應用程序已經在運行(它已經過了啓動畫面,並且已經到了真正的主屏幕)。然後按主頁按鈕將應用程序置於後臺。然後我做了一些事情,導致第三方應用程序啓動我的應用程序。我想要的是我的應用程序可以簡單地恢復(如果我已經從手機的常規啓動器中輕敲應用程序圖標)。相反,它會再次啓動啓動畫面,並且我的初始化代碼再次運行,這是我不想要的。

由於這是啓動我的應用程序的第三方應用程序,我沒有能力改變它如何啓動我的應用程序。我假設它只是查詢包管理器以獲取啓動意圖並啓動它。所以,我需要找到一種方法在我的應用程序中解決這個問題。

如果我的「真實」主要活動已經在運行,是否有方法可以從我的啓動畫面的onCreate方法中找到?如果是,跳過初始化代碼並將現有主要活動放到前臺?

回答

0

在應用程序類中保留一個靜態布爾值。

初始化完成後,將其設置爲true。
當啓動畫面開始時,檢查布爾值,如果爲true,直接進入主要活動而不執行任何邏輯,並立即完成飛濺活動。
如果爲false,則假定它是冷啓動,並且需要運行初始化代碼。

無法從Android應用程序中查看Activity堆棧,因此您無法檢查Main活動是否已在運行。

第三方應用程序也無法檢查您的應用程序是否正在運行,然後根據該應用程序啓動不同的活動。

相關問題