gpt4 book ai didi

android - PackageManager.queryIntentActivities() 返回不完整列表?

转载 作者:搜寻专家 更新时间:2023-11-01 09:08:04 28 4
gpt4 key购买 nike

我正在 Android 中编写一个启动器,这是我一直试图修复一段时间但没有成功的问题。

我有下面的代码来查询在我的启动器最开始运行的所有 Activity ,比如 onResume()

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List<ResolveInfo> infos = packageManager.queryIntentActivities(mainIntent, 0);
for (final ResolveInfo info : infos) {
// create my own recrord for each activity
}

问题是,如果我将我的启动器设置为默认启动器并重新启动 设备,每次我都只能通过上面的代码获得完整列表的一部分。好像总是少了一些大胖 Activity (比如发条骑士)。然而,第二次运行上面的代码将返回完整列表。有谁知道为什么?我的猜测是 PackageManager 需要一些时间来解析胖 Activity ,如果过早调用 queryIntentActivities(),它只会返回部分列表,是这样吗?

但为什么默认启动器没有这个问题呢?

最佳答案

较大的 Activity 更有可能安装在外部存储分区上,这通常需要一段时间才能安装。我的 Samsung Galaxy W 手机上的启动器就是这样做的,它会显示一个占位符图标,直到安装 SD 卡并且应用程序可以使用为止。

应该有来自 PackageManager 的广播来告诉您何时有新的应用程序可用,但我无法一目了然地找到一个。你可能要听ACTION_MEDIA_MOUNTED并希望 PackageManager 先到达那里。

关于android - PackageManager.queryIntentActivities() 返回不完整列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com