我正在创建一个类似于内置SMS应用程序的应用程序.
我需要的:
我尝试过:
- 运行常规服务,直到Android杀死服务一直工作
- 使用AlarmManager进行5分钟.间隔呼叫服务.但我无法做到这一点.
我稍微感到困惑之间的差异Asynctask,Thread,Service,Loader在Android系统.
我知道它是如何工作的.但我仍然不明白我应该使用什么以及何时使用.
我使用Android工作了3年,并且通常仍然AsyncTask用于所有后台任务(有时候用于Thread).但是很多人说"Asynctask已经过时了",不建议使用它们.他们还建议使用robospice或Volley.
那么,AsyncTask真的很糟糕,我应该使用框架进行网络任务?我应该将什么用于后台(而不是网络)任务?
什么时候应该使用线程或服务?
它们应该用于身份验证吗?例如,在我的应用程序中,我正在考虑使用线程或服务(我通过Active Directory进行身份验证.)
你有什么时候使用它们的例子吗?
如果我需要通过HTTP(或其他)异步加载一些数据来更新UI,我在编写Android应用程序时有一些选择(在我确定我错过的许多其他应用程序中):
使用常规线程和处理程序来更新UI.
使用和IntentService,并使用回调或通过Intent广播结果.
使用装载机.
据我所知,IntentService与Activity的生命周期无关,因此对方向等的任何更改都不会影响数据的检索.这种情况不适用于在Activity中触发的AsyncTask或线程.
这个问题的原因是我刚刚读到的内容Loaders,并对其应用感到困惑.它们似乎与数据源关系更紧密,如果数据源发生变化,那么"透明地"将对所有内容进行适当处理.Loaders也似乎容忍配置/方向的变化(我相信).
我一直在使用IntentService来进行RESTful服务调用,并广播由适当的活动接收的结果.
我假设我可以写一个基于HTTP的Loader,但我不确定这是否是这种机制的最佳用法.
使用其中一种异步数据加载方法的优点/缺点是什么?
可能重复:
服务,异步任务和线程之间的区别?
我正在下载大约600张图片.我希望这个任务在后台运行,哪种方法是最好的方法.异步还是线程?有人可以告诉我吗?
我需要知道的是,当我可以使用独立线程进行某些操作时,为什么我需要服务. 那是什么,服务可以做但线程不能? 我确实通过了很多帖子但找不到满意的答案.
我试图理解混淆Processes和Threads概念的Android.下面我提几个问题.也许那些是愚蠢的问题,但请帮我回答这些问题并澄清我的疑虑.
1)如果我创建一个将运行的线程?在主(UI)Thread?
2)如果我创建的线程作为工作者在后台运行Thread那么有什么用AsyncTask(我的意思是它比线程更好)?
3)我们可以在AsyncTask中创建一个Thread吗?