Android:AsyncTask的替代品?

对于我的应用程序,我为所有的外部API调用networking做了一个框架。 我把所有的东西都放在“服务”中,如: UserServiceMessageService等。所以现在当我想调用一个networking方法,我不能在我的Activity的UI线程中做这个,所以我做了一个AsyncTask ,一切都很好=)

但是现在我想要的东西就像给AsyncTask执行方法,所以我不需要为我的networking框架的每个方法写一个AsyncTask 。 所以不要这样:

 public class NetworkTask extends AsyncTask<UserService, Void, Void> { @Override protected Void doInBackground(UserService... params) { UserService userService = params[0]; userService.getUser(); return null; } } 

我想要更多的“抽象”,所以AsyncTask不需要知道“getUser”方法? 但我找不到如何做到这一点的任何想法…也许AsyncTask这不好呢?

Solutions Collecting From Web of "Android:AsyncTask的替代品?"

有很多AsyncTask的select:

https://android-arsenal.com/tag/9

并加上Needle – Android的multithreading库

http://zsoltsafrany.github.io/needle/

也许你可以使用第三方库像Retrofit如果你使用图像,我强烈build议毕加索

请记住,Android有线程和AsyncTasks的限制。

您可以使用2个库来完成AsyncTasks的相同工作:

1)Volley – > http://www.androidhive.info/2014/05/android-working-with-volley-library-1/

2)LoopJ – > http://loopj.com/android-async-http/

UPDATE

我真的推荐Retrofit 2. http://square.github.io/retrofit/

祝你好运。

问候,

Uilton。

如果你不喜欢第三方库,并喜欢简单和良好的文档和支持图书馆, 装载机是最好的select。

对于我们的喜悦,AsyncTaskLoader(Loaders的子类)执行与AsyncTask相同的function,但更好,也可以更轻松地处理Activityconfiguration更改。最好的事情是在Fragments和Activities的生命周期内运行。

有关更多信息和子类,请查看本文档 。

您可以使用Volley库,它在后台线程上工作,并在事情完成后让您控制回主线程。