相关疑难解决方法(0)

主线程和UI线程之间的区别

我明白两者都是一样的.但我最近(派对有点晚)遇到了android支持注释.同一个注释中的注释

但是,在具有不同线程上的多个视图的系统应用程序的情况下,UI线程可能与主线程不同

我无法理解这里的情景.有人可以解释一下吗?

编辑:我已经阅读了开发人员文档,这与此问题中链接的支持文档相矛盾.请停止发布两者是一样的.

multithreading android

36
推荐指数
1
解决办法
7366
查看次数

如果它在android中的同一个线程中运行,为什么要使用Service

我在Android Developer网站上浏览了Bound Service.我以为我已经理解了这项服务,但我刚刚找到了另一种通过使用Messenger类来连接服务的方法,特别是对于本地服务.在那里我感到困惑.也许我的概念错了.

这是我对Android的理解Service.您何时创建服务

  1. 您想在后台执行单独的工作.
  2. 你想让它成为一个单独的过程.
  3. 您希望使其在与启动它的组件无关的生命周期中运行.

混淆是列表中的第一项,即背景的定义.背景不是线程或进程吗?我从未想过它可以在主线程上运行.

以下是开发页面中关于服务的注意事项.

警告:服务在其托管进程的主线程中运行 - 该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定).这意味着,如果您的服务要进行任何CPU密集型工作或阻止操作(例如MP3播放或网络),您应该在服务中创建一个新线程来完成这项工作.通过使用单独的线程,您将降低应用程序无响应(ANR)错误的风险,并且应用程序的主线程可以保持专用于用户与您的活动的交互.

问题

  1. 如果服务函数无论如何都会在主线程上运行,为什么选择使用服务呢?
  2. 我们是否必须编写一个服务来阻止ANR,即使在主线程中完成了耗时的工作?假设该服务仅适用于我的应用程序.
  3. 是否有任何实际案例或理由将服务用作私有并在同一个线程中运行?

service binding android

32
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

binding ×1

multithreading ×1

service ×1