小编use*_*245的帖子

我们为什么要使用aysntask或service而不是新线程

在android中我们为什么要使用asyntask和service,而不是使用新的thread()并编写必要的后台功能?

我知道我们不应该运行长时间运行的操作,比如在mainthread即UI线程上从服务器下载文件.并且应该使用asynctask或服务.

但是为什么我们不能创建一个新的thread(){最终是一个除主线程之外的新线程}并在该线程中编写必须长时间运行的操作.

谷歌为什么创建AsyncTask和服务而不建议使用常规的新线程()?

提前致谢

编辑1:可能是我不清楚我的问题或不确定,如果我,即使现在.帮帮我.

我明白了,整点都是从

Do not block the UI thread
Do not access the Android UI toolkit from outside the UI thread 
Run Code Online (Sandbox Code Playgroud)

为什么?1. UI线程可以处理多少?我们如何确定断点?如何确定ANR点?我们能跟踪吗?
2.当服务组件处理长时间运行的操作时,为什么活动组件不能处理?

请记住,如果你使用一个服务,它仍然在默认情况下,你的应用程序的主线程中运行,所以你还是应该在服务中创建一个新的线程,如果它执行密集或阻塞操作 http://developer.android.com/guide/ components/services.html 上面的语句来自android文档.

3.如果我们如此关注主线程,我们是否可以立即开始新的线程?不要误解我的问题3,我试图了解在主线程中启动服务的优势.默认情况下.

在上面的语句中,它是否表明主线程能够启动和处理服务的长时间运行负载?如果是这样,它与问题1相矛盾.

multithreading android process android-service android-asynctask

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