androidviewIWindowManageraddWindowTokenIBinder token int type int displayId 这个方法的用处 并给出调用例子
该方法用于向系统添加一个窗口令牌(Window Token),以便系统可以追踪窗口的生命周期并进行管理。窗口令牌通常用于管理系统级别的窗口,如状态栏、导航栏等,以及应用程序中的悬浮窗口等。
调用例子:
private WindowManager mWindowManager;
private View mFloatingView;
// 创建并添加悬浮窗口
private void createFloatingView() {
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
// 创建悬浮窗口布局
mFloatingView = LayoutInflater.from(this).inflate(R.layout.floating_view, null);
// 设置悬浮窗口属性
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, // 系统级别的窗口
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
// 添加窗口令牌
mWindowManager.addView(mFloatingView, params);
IBinder token = mFloatingView.getWindowToken();
int type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
int displayId = Display.DEFAULT_DISPLAY;
try {
IWindowManager windowManager = WindowManagerGlobal.getWindowManagerService();
windowManager.addWindowToken(token, type, displayId);
} catch (RemoteException e) {
e.printStackTrace();
}
}
在上面的例子中,我们创建了一个悬浮窗口,并使用 mFloatingView.getWindowToken() 方法获取了窗口令牌,然后调用 IWindowManager.addWindowToken() 方法将其添加到系统中。这样系统就可以跟踪该窗口的生命周期并进行管理
原文地址: https://www.cveoy.top/t/topic/ckfw 著作权归作者所有。请勿转载和采集!