1

我使用服務通過手勢啓動應用程序。 這工作正常。但是當我按下home按鈕時(無論何時何地都無所謂),那麼從服務啓動應用程序(在按下homebutton之後)大約需要2-3秒。也可以在按住home按鈕2-3秒後啓動應用程序,然後應用程序立即啓動。另一種方法是在從服務啓動應用程序之前打開一個隨機應用程序。那麼也沒有延遲。按下主頁按鈕後從服務啓動應用程序需要太長時間

總結:

隨時按下爲homeButton後,從推出該服務的應用程序與下面的代碼(按爲homeButton後右),大概需要2-3秒。按Homebutton後2-3秒啓動應用程序立即啓動應用程序。

startActivity(getPackageManager().getLaunchIntentForPackage(item)); 
Toast.makeText(getApplicationContext(), "TestTest", Toast.LENGTH_SHORT).show(); //just for testing 

敬酒-消息(該startActivity命令後右)總是會立即顯示,所以服務是工作的時候,即使按下hombutton之後。

這個問題真的很奇怪。 homebutten如何在服務中「阻塞」startActivity-Command幾秒鐘?

任何想法? Thx

+0

你檢查過你的清單文件嗎? –

+0

檢查什麼? – user3284588

+0

這可能會導致你的錯誤! –

回答

-2

不確定,首先讓你的活動啓動模式單一task.and當你的活動後臺,然後調用service方法再次啓動它。

+0

不知道你的意思和我的問題有什麼共同點?你能詳細說明你的想法嗎? – user3284588

+0

但爲什麼忽視標記答案。 – User10001

+0

我不知道,那不是我...... – user3284588

0

我有同樣的問題。

我設法發現的唯一情況是等待期是由名爲waitForActivityStart的線程引起的。這是你可以看到,如果你開始使用ddms方法分析。

奇怪的是,在那個線程中沒有任何東西被執行 - 沒有使用cpu時間。它只是等待幾秒鐘 - 或者至少它是這樣的。

對不起,我不能提供完整的解決方案,我希望這可以幫助某人繼續研究,因爲我也被困在這裏。

+0

Thx這個有用的答案。我研究了很多最後的日子,我發現了一個有趣的鏈接: http://stackoverflow.com/questions/5600084/starting-an-activity-from-a-service-after-home-button-pressed-without- 5-seco 它看起來並不那麼容易避免延遲時間。 – user3284588

+0

我明白了。正如我所描述的那樣,這正是發生的事情:這個線程實際上什麼都不做,只是等待幾秒鐘。 – tzrnee

相關問題