我知道我可以从对 PackageManager.getPackageInfo
的调用中捕获 NameNotFoundException
或循环遍历 返回的
了解是否安装了特定的包,但这两个看起来要么冗长要么丑陋。在我的个人手机上,我安装了 300 多个软件包,所以我讨厌每次需要检查时都必须执行该操作。捕获异常作为执行应用程序逻辑的一种方式只会让我觉得整个人都不对。我是不是在某处遗漏了 isPackageInstalled 方法,还是我只需要使用上述技术之一自己实现它?如果是后者,哪个会被认为是更快且资源密集度更低的选项?PackageInfo
列表>PackageManager.getInstalledPackages
最佳答案
自 PackageManager.getInstalledPackages()
返回一个 List
,你不需要手动循环它。您可以使用 List.contains()
或 List.containsAll()
在一行代码中完成任务。当然,这不会改变效率,因为这两种方法本身都可能包含一个循环。
关于java - 更快或更简洁地查明某个包是否已安装在 Android 上的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13617068/