一、需求
1、车机系统中,倒车或全景的window需要显示在其他应用之上;
2、倒车或全景界面,下层应用生命周期进入onPause -> onStop,避免应用耗费UI资源,如地图导航、视频播放、Camera显示等。
二、分析
1、针对需求1,倒车全景应用在后台Service中使用WindowManager.addView(View, LayoutParams)的方式添加窗口显示,不依附于Activity,类似悬浮窗显示;
2、系统添加倒车全景类型的WindowType,调整优先级在其他window type之上;
3、系统添加倒车全景类型的SLEEP_TOKE,倒车全景界面显示时通知下层应用进入相应生命周期。
三、实现
1、系统添加倒车全景类型的WindowType;
diff --git a/frameworks/base/core/java/android/view/WindowManager.java b/frameworks/base/core/java/android/view/WindowManager.java
index fc34a25..2e960ef 100644
--- a/frameworks/base/core/java/android/view/WindowManager.java
+++ b/frameworks/base/core/java/android/view/WindowManager.java
@@ -988,6 +988,15 @@
*/
public static final int TYPE_APPLICATION_OVERLAY = FIRST_SYSTEM_WINDOW + 38;
+