Han*_*oid 12 android android-service android-windowmanager
我有一个服务,在窗口管理器上显示浮动视图(使用WINDOW_TYPE_ALERT权限).我能够显示它并执行操作.但是,我有两个具体问题:
执行:
在清单中,我添加了以下权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Run Code Online (Sandbox Code Playgroud)
我有一个广播接收器,它将监听报警事件.收到活动后,我正在启动服务以显示浮动视图.以下是我用来创建视图的代码.
LayoutParams layOutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)
每当用户对视图执行任何操作时,我都会从窗口管理器中删除该视图并终止该服务.
我想知道的是 - 如果这是解决问题的正确方法,或者有更好的方法吗?而且,我应该对LayoutParams进行更改还是保持原样?
其次,当有SYSTEM BACK/HARDWARE BACK按钮按下事件时,我还想忽略这个浮动视图.有关如何执行此操作的任何指示都会有所帮助.
附上浮动视图的屏幕截图以便更好地理解:

qba*_*sso 11
在后退按钮检测方面 - 我让它以下列方式工作(一切都在服务onCreate代码中发生):
mView = new RelativeLayout(this) {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode()==KeyEvent.KEYCODE_BACK) {
// < your action >
return true;
}
return super.dispatchKeyEvent(event);
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22640 次 |
| 最近记录: |