该方法用于向系统添加一个窗口令牌(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() 方法将其添加到系统中。这样系统就可以跟踪该窗口的生命周期并进行管理

androidviewIWindowManageraddWindowTokenIBinder token int type int displayId 这个方法的用处 并给出调用例子

原文地址: https://www.cveoy.top/t/topic/ckfw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录