Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 缩短查询已安装应用程序的时间_Android - Fatal编程技术网

Android 缩短查询已安装应用程序的时间

Android 缩短查询已安装应用程序的时间,android,Android,我制作了一个应用程序,可以用来获取已安装的应用程序信息,如应用程序名、程序包名、安装路径等。问题是,当它第一次在机器上运行已安装应用程序信息的查询时,需要一段时间,有没有办法解决/缓解此类问题 您可以做几件事: Handler handler = new Handler(); new Thread(new Runnable() { void run() { // Your code here but not anything that talks to the UI

我制作了一个应用程序,可以用来获取已安装的应用程序信息,如应用程序名、程序包名、安装路径等。问题是,当它第一次在机器上运行已安装应用程序信息的查询时,需要一段时间,有没有办法解决/缓解此类问题

您可以做几件事:

Handler handler = new Handler();
new Thread(new Runnable() {
    void run() {
        // Your code here but not anything that talks to the UI
        handler.post(new Runnable() {
            void run() {
                // Talk to the UI here

            }
        });
    }
}).start();
  • 正如@Shereef所说,您应该在主线程之外的线程中运行长期运行的作业
  • 您应该在服务中运行该线程,以便在配置更改、应用程序退出期间不会丢失进度。如果用户在等待时感到沮丧,应用程序可以向用户发送通知
  • 为了减少/消除这种挫折感,您应该在结果可用时更新应用程序的UI。如果用户看到正在取得进展,他们会更乐意允许长时间运行的操作继续进行
  • 您应该允许用户在数据完全可用之前搜索或深入到数据中。如果他们忙于查看一个应用程序的细节,而其余的数据则加载,那么他们永远不会知道加载所有应用程序数据花费了很长时间
  • 考虑在获取数据时将其保存到数据库中,这样用户只需支付一次获取成本
  • 也考虑将数据库隐藏在内容提供者后面。
  • 您可以安排一个警报来重新启动服务,以便在后台更新数据

  • 您的应用程序性能受已安装应用程序数量的影响。顺便问一下,我们该如何处理提供的apk?最好提供一些代码进行分析!无论如何,如果设置正确,ProGuard可以优化您的代码。您依赖于应用程序外部处理的数据,不幸的是,我认为您无法做太多改进speed@DerGolem@sherpya更多的是一个设计和控制流问题。我不是想加快程序的执行速度,而是想改善用户体验。根据你的问题标题,“优化”意味着“加速”或提高性能。我认为主要的问题是:查询已安装的应用程序需要花费大量的时间。。。我想我需要找出一种方法来缩短用户等待时间,以改善用户体验。你需要在应用启动时立即列出列表吗?否则,当你的应用程序启动时,你可以在后台开始检索列表,并且很可能在用户请求之前获得完整的列表。您还可以处理通知您何时安装/卸载应用程序的事件,以便您的列表始终是最新的