安卓多用户管理之UserManagerService.UserData类

2024-01-09 07:33:38


前言

UserManagerService.java内容繁多,对其进行逐个部分的拆解分析,本文对其内部UserData类进行基本说明和解读


UserData----用户资料

1.1 源码

    /**
     * Internal non-parcelable wrapper for UserInfo that is not exposed to other system apps.
     * 未公开给其他系统应用程序的UserInfo的内部不可分组包装。
     */
    @VisibleForTesting
    static class UserData {
        // Basic user information and properties    基本用户信息和属性
        UserInfo info;
        // Account name used when there is a strong association between a user and an account
        // 当用户和帐户之间存在强关联时使用的帐户名
        String account;
        // Account information for seeding into a newly created user. This could also be
        // used for login validation for an existing user, for updating their credentials.
        // In the latter case, data may not need to be persisted as it is only valid for the
        // current login session.
        /*
        用于种子设定到新创建的用户的帐户信息。这也可以用于现有用户的登录验证,用于更新他们的凭据。
        在后一种情况下,数据可能不需要持久化,因为它只对当前登录会话有效。
        */
        String seedAccountName;
        String seedAccountType;
        PersistableBundle seedAccountOptions;
        // Whether to perist the seed account information to be available after a boot
        // 是否在引导后销毁可用的种子帐户信息
        boolean persistSeedData;

        /** Elapsed realtime since boot when the user started. */ /**自用户启动后实时运行的时间*/
        long startRealtime;

        /** Elapsed realtime since boot when the user was unlocked. */ /**自用户解锁时启动以来实时运行的时间*/
        long unlockRealtime;

        private long mLastRequestQuietModeEnabledMillis;

        /**
         * {@code true} if the system should ignore errors when preparing the
         * storage directories for this user. This is {@code false} for all new
         * users; it will only be {@code true} for users that already existed
         * on-disk from an older version of Android.
         */
         /**
         /**
  		如果系统在准备此用户的存储目录时应忽略错误。这对所有新用户来说都是错误的;
		这只适用于已经存在于旧版本Android磁盘上的用户。
         */
        private boolean mIgnorePrepareStorageErrors;

        void setLastRequestQuietModeEnabledMillis(long millis) {
            mLastRequestQuietModeEnabledMillis = millis;
        }

        long getLastRequestQuietModeEnabledMillis() {
            return mLastRequestQuietModeEnabledMillis;
        }

        boolean getIgnorePrepareStorageErrors() {
            return mIgnorePrepareStorageErrors;
        }

        void setIgnorePrepareStorageErrors() {
            mIgnorePrepareStorageErrors = true;
        }

        void clearSeedAccountData() {
            seedAccountName = null;
            seedAccountType = null;
            seedAccountOptions = null;
            persistSeedData = false;
        }
    }

1.2 属性

属性类型含义
infoUserInfo基本用户信息和属性
accountString当用户和帐户之间存在强关联时使用的帐户名
seedAccountNameString种子账户名称
seedAccountTypeString种子账户类型
seedAccountOptionsPersistableBundle种子账户选项
persistSeedDataboolean存留种子信息
startRealtimelong自用户启动后实时运行的时间
unlockRealtimelong自用户解锁时启动以来实时运行的时间
mLastRequestQuietModeEnabledMillislong上次请求静态模式Enabled毫秒时间
mIgnorePrepareStorageErrorsboolean忽视准备存储错误

1.3 方法

方法返回值参数含义
setLastRequestQuietModeEnabledMillisvoidlong millis设置上次请求静态模式Enabled毫秒时间为millis
getLastRequestQuietModeEnabledMillislong返回上次请求静态模式Enabled毫秒时间
getIgnorePrepareStorageErrorsboolean返回mIgnorePrepareStorageErrors的值
setIgnorePrepareStorageErrorsvoid设置mIgnorePrepareStorageErrors的值为true
clearSeedAccountDatavoid清除种子账户信息,seedAccountName 、type、options为null, persistSeedData为false。

文章来源:https://blog.csdn.net/qq_45649553/article/details/135454641
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。