2011-07-17 43 views
3

我正在爲我的媒體播放器鎖定屏幕替換,我有一個方面的麻煩。開始活動,不帶應用程序前

鎖定屏幕本身是通過我的媒體服務每當屏幕關閉推出了新的活動。問題在於Activity使用應用程序上下文來啓動,這會導致它在用戶解鎖後將應用程序置於前端。

我已經使用這些服務上下文啓動活動試過,但我相信這不起作用,因爲服務本身被鏈接到應用程序。

下面是在啓動該活動的服務的代碼:

Intent mLock = new Intent(context, LockScreen.class); 
    mLock.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(mLock); 

有沒有人對我怎樣可以啓動這一活動,並保持我的應用程序在後臺有什麼建議?

回答

2

很多搜​​索後我能夠通過添加FLAG_ACTIVITY_MULTIPLE_TASK得到我想要的結果。這允許鎖定活動開始和結束,而不需要將父應用程序放在前面。

我將繼續測試該解決方案和售後的任何缺點,我覺得。如果任何人想在這種感覺上有所作爲......我知道這面旗子在過去引起了批評。

感謝, 喬希

+1

喬希,我知道這是一箇舊的帖子...但你介意分享讓你工作的最終代碼嗎?你是否沒有應用背景開始你的活動?還是FLAG_ACTIVITY_MULTIPLE_TASK | FLAG_ACTIVITY_NEW_TASK? – MegaAppBear

0

我有點不清楚你的問題。但我希望我說得對。

如果您想激活鎖定活動並解鎖鎖定活動,則不希望看到在鎖定活動被調用之前正在運行的活動(如活動X),則請先關閉此活動(X)調用鎖定活動。

如果你想X運行,即使在鎖定活動是積極的,但收盤時已解鎖,然後使用標誌。解鎖後設置一個標誌,並允許X定期檢查此標誌狀態。

希望我能夠幫助你。

+0

謝謝你的建議。我想要做的是在屏幕解鎖後關閉頂部時保持頂部的任何活動。無論這是我的媒體播放器還是其他應用程序。現在當鎖定活動開始時,解鎖活動總是將我的應用拉到頂端 – Josh

+0

如果您還沒有解決它,請發佈一些代碼。可能會有幫助! –

+0

我還沒有解決使用您的解決方案,但這並不是說它不會工作。如果可能的話,我寧願找到一種方法來啓動活動,而不使用我的應用程序上下文。 – Josh

3

在清單中設置鎖屏的任務親和力。這應該將您排除在外而不使用FLAG_ACTIVITY_MULTIPLE_TASK。

+0

雖然在某些情況下(用戶按下主頁按鈕)有效,但在其他區域失敗。我有一個方法調用finish();到活動,但這仍然拉我的主要應用程序的前線。我通過向清單中的活動添加了android:taskAffinity =「」來應用。 – Josh

+0

檢查一下!我將標註添加到錯誤的活動中。你能解釋爲什麼這是比使用國旗更好的解決方案嗎? – Josh

+0

僅僅是因爲SDK文檔建議針對FLAG_ACTIVITY_MULTIPLE_TASK。如果還有其他後果,我會很緊張地使用它。 –

相關問題