2015-05-29 72 views
1

我一直在嘗試使用FLAG_SHOW_WHEN_LOCKED和FLAG_DISMISS_KEYGUARD顯示活動,每當有人打開屏幕調用活動。它大部分時間運作良好,但有些情況會造成奇怪的行爲。發生這種情況時,該活動已經存在的和我發送一個意圖它已被移動後,回到了歷史堆棧,通過使用首頁按鈕。的Android FLAG_SHOW_WHEN_LOCKED當從歷史

首先,如果我在我的活動中按下主頁按鈕,然後關閉和打開屏幕,則活動預計將立即顯示。然而,顯示的卻是基本的android鎖屏。我的活動落後了。

最差的,有時,如果我觸摸主屏幕,然後關閉屏幕和,主屏幕覆蓋(所有APPLI標誌和窗口小部件),顯示與我在後臺活動!

的目的,我使用的每個屏幕被關閉,以laucn和召回活動時間:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION); 
context.startActivity(intent); 

所以,看來,當我的行爲是在歷史堆棧,它有時不能正確得到回顧並繞過android鎖屏。我的意圖有什麼問題嗎?通過Intent.addFlags()

 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 
     WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD 
     WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
     WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON 

乾枯或使用getWindow().addFlags()從您的活動:

回答

0

添加更多的標誌。 Here

+0

不,我無法打開屏幕。因爲我的活動是在屏幕關閉時創建的,所以當屏幕打開時立即準備就緒。我正在做一些半秒內的工作,並加載webview。所以我無法讓用戶在網頁加載後打開屏幕後等待。 – Laetan

+0

上:我試圖添加這些標誌,我甚至沒有工作。如果我的活動不在歷史堆棧頂部,android鎖定屏幕仍然顯示。 – Laetan

0

您可以在應用程序中的Adenda SDK整合,實現你追求的:當你的活動啓動

這將解決您的查詢

參考答案,這些標誌將關閉鎖屏。它們讓你比較容易地在鎖屏上顯示你想要的內容。

我隸屬於Adenda,完全披露

+0

我只想強調爲什麼我的活動未能從歷史堆棧中正確顯示。這是我得到的最後一個問題,我不想在這一點上改變一切。 – Laetan