java - 更快或更简洁地查明某个包是否已安装在 Android 上的方法

标签 java android

我知道我可以从对 PackageManager.getPackageInfo 的调用中捕获 NameNotFoundException 或循环遍历 返回的 PackageInfo 列表>PackageManager.getInstalledPackages 了解是否安装了特定的包,但这两个看起来要么冗长要么丑陋。在我的个人手机上,我安装了 300 多个软件包,所以我讨厌每次需要检查时都必须执行该操作。捕获异常作为执行应用程序逻辑的一种方式只会让我觉得整个人都不对。我是不是在某处遗漏了 isPackageInstalled 方法,还是我只需要使用上述技术之一自己实现它?如果是后者,哪个会被认为是更快且资源密集度更低的选项?

最佳答案

PackageManager.getInstalledPackages()返回一个 List,你不需要手动循环它。您可以使用 List.contains()List.containsAll()在一行代码中完成任务。当然,这不会改变效率,因为这两种方法本身都可能包含一个循环。

关于java - 更快或更简洁地查明某个包是否已安装在 Android 上的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13617068/

相关文章:

java - OkHttp "java.net.ProtocolException: Unexpected status line: nullHTTP/1.1 200 OK"在使用相同连接的 "204 NO-CONTENT"响应之后

java - double 和 Double 比较的区别

android - Xamarin - Navigation.PopModalAsync() 后重新加载页面

android - 第一次将当前值设置为 EditTextPreference

android - 发生布局更改时设置动画

java - 如何使用 Spring Webflux 和 Tomcat 调试已发布的连接?

java - GridBagLayout:最后一个组件影响网格宽度

java - 如何在一串数字中添加前导零以使其成为所需的 9 位数字

android - FFmpeg Android 和 FFmpeg Android Java 有什么区别?

Android - 以编程方式设置两个重力参数