說我的應用程序正常運行,顯示活動A.然後用戶鎖定手機。一個盡職的睡覺(onPause()
)。在屏幕關閉的某個時候,我需要向用戶展示一些東西。所以從我的後臺代碼(服務),我稱之爲startActivity爲B,通過以下標誌:鎖定屏幕上的活動 - 解散它恢復之前的活動
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_NEW_TASK
而在B的onCreate()
,我添加了下面的窗口標誌
FLAG_SHOW_WHEN_LOCKED
FLAG_TURN_SCREEN_ON
FLAG_DISMISS_KEYGUARD
這一切工作正常 - B現在出現在鍵盤上。
在稍後的一點,我想解僱B,所以從B內部我打電話dismiss()
,按預期工作。這裏是出錯的地方: 現在我沒有返回到鎖定屏幕,而是在鎖定屏幕上運行A.
當我解僱B時,如何阻止操作系統恢復A?
謝謝。
我有一個類似的問題,我還沒有解決幾個月,我終於想通了。 B顯示很好,但是一旦我解僱它,一旦我解鎖了鎖屏,A就會彈出。我用一些靜態變量解決了它,但它並不理想。 –
亂搞一下之後,我在啓動我的Activity時使用了'Intent.ACTIVITY_MULTIPLE_TASK',因爲我在鎖定屏幕上顯示的活動是獨立的 - 它需要的是一些共享首選項,但不依賴於其他活動。 –
嗯..在我的情況下,將無法正常工作。在最近的應用程序列表中,我有我的應用程序顯示與屏幕B(或有時,沒有最近的應用程序)..如果我的應用程序運行之前鎖定電話(無論是在後臺或前臺),我會喜歡它保持在鎖定之前的狀態(如此運行,無論是在後臺還是前臺) – user1537915