3

我有我的主要活動中,並且當用戶按下一個按鈕,我打開另一個活動B.但是,當這種情況發生B不只是出現在頂部:和活動間的安全鍵盤保護活動的轉變是不可思議

  • 一個消失
  • 安全鎖鍵盤顯示出來
  • 出現b

當我擺脫B的同樣的事情發生。這很煩人,因爲屏幕上有很多閃爍而沒有真正的目的。有沒有什麼辦法可以實現從A到B的直接轉換,而在沒有將2個活動合併爲1的情況下,鍵盤保持活躍狀態​​?

下面是我在做什麼在的onCreate兩個活動:

getWindow().addFlags(
     WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD 
       | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
       | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

這裏是如何開始的活動:

 final Intent intent = new Intent(Sand.this, EditRule.class); 
     intent.putExtra(DB.KEY_PARENT_ID, id); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     startActivityForResult(intent, 0); 
     overridePendingTransition(0, 0); 

我也試着設置一個空的android:windowAnimationStyle在活動的主題,但沒有運氣。

UPDATE:我提交了這個bug: https://code.google.com/p/android/issues/detail?id=68465&thanks=68465&ts=1397301860

感謝, 張志賢

+1

同樣的問題(http://stackoverflow.com/questions/22389765/lockscreen-is-displayed-between-activities),但沒有解決方案。我會很感興趣,看看你是否找到解決方案。 – Randy

+0

我開始認爲我是這個星球上唯一一個出現這個問題的人:)我實際上正在尋找一年以上的解決方案。 Intent.FLAG_ACTIVITY_NO_ANIMATION我看到了一個非常微妙的效果,在我的測試中,'閃爍'只是快了一點,但並沒有消除它。如果在獎金結束時沒有解決方案,我想我會提交一個錯誤。 – Sandman

+0

只要確保我理解了這一點,當您在活動A和活動B之間切換時,您的鎖定屏幕彈出,然後關閉,然後您的新活動彈出? – zgc7009

回答

1

我看着這個廣泛(與其他幾個工程師)在ICS和JB一年多前。這是無法避免的閃爍,我強烈懷疑KitKat仍然是這種情況。你應該提交這個錯誤。 (如果你看一下Android中與鍵盤相關的源代碼,這是一個相當大的代碼/政策,充斥着特殊情況,因爲這種情況在任何地方都沒有明確記錄,即使你可以得到它在一個版本上工作,我不會依賴它一貫工作。)

最終,我們通過將我們所有必須閃爍的鎖屏UI集成到單個Activity中來解決此問題。這是不愉快的,但它的工作。

+0

當我完成後,我會提交該錯誤併發佈一個鏈接。 – Sandman