【源码剖析】Launcher 8.0 源码 (21) --- Launcher 启动流程 第六步之loadAllApps第1小步从系统读取数据

本文详细剖析了Android Launcher 8.0启动流程中的第六步——加载所有应用(loadAllApps)。首先通过系统服务获取所有活动列表,然后遍历用户账户,为每个用户收集应用并存储到mBgAllAppsList中。接着,通过回调将应用绑定到Launcher,并使用AlphabeticalAppsList按字母顺序排列应用。整个过程涉及用户管理、应用筛选和排序算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Launcher8.0启动流程的第六步在workspace图标显示完成就开始准备allapp的显示。因为allapp需要点击或滑动allappButton才能打开,所以显示在workspace之后。Loadallapp是从系统获取所有的应用,然后将其显示到allapp里面。

 

private void loadAllApps() {


//仍然回调Launcher的方法,所以先获取Launcher的对象。

 

final Callbacks oldCallbacks = mCallbacks.get();
    final List<UserHandle> profiles = mUserManager.getUserProfiles();


//从系统获取activity列表,getActivityList最终使用的是系统方法

ServiceManager.getService(Context.LAUNCHER_APPS_SERVICE)

.getLauncherActivities(mContext.getPackageName(),
        packageName, user), user),在getActivityList传入的两个参数是packagename和user,用于筛选手机中的应用,这里packagename为空,传入当前的user则最终获取整个手机在当前user下所支持的全部应用。

 

而后将获取的应用存放到集合mBgAllAppsList中。


    mBgAllAppsList.clear();
    for (UserHandle user : profiles) {
        final List<LauncherActivityInfo>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值