我有一个服务,可以在窗口管理器上显示浮动视图(使用WINDOW_TYPE_ALERT权限)。我能够显示它并执行操作。但是,我有两个具体的问题:
- 关于浮动视图的实现
- 如何监听系统返回按钮事件以便我可以关闭视图。
实现:
在清单文件中,我添加了以下权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
我有一个广播接收器,它将监听闹钟事件。在接收到该事件时,我会启动一个服务来显示悬浮视图。以下是我用来创建该视图的代码。
LayoutParams layOutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
每当用户在视图上执行任何操作时,我都会将该视图从窗口管理器中移除并停止服务。我想知道的是,这是否是解决问题的正确方式,或者是否有更好的方法?另外,我应该对LayoutParams进行更改还是保持原样?
其次,当系统返回/硬件返回按钮被按下时,我也想关闭这个浮动视图。如何实现这一点?附上一个浮动视图的截图以便更好地理解: