Android:AsyncTask的替代品?

che*_*ave 12 android frameworks android-asynctask

对于我的应用程序,我为外部API的所有网络调用创建了一个框架.我把一切都放在"服务",如:UserService,MessageService等等.所以现在当我想打电话给网络的方法,我不能在我的UI线程做到这一点Activity,所以我做了AsyncTask,一切都只是罚款=)

但是现在我想要让方法执行,AsyncTask所以我不需要AsyncTask为我的网络框架的每个方法编写一个.所以不要有这样的东西:

public class NetworkTask extends AsyncTask<UserService, Void, Void> {

    @Override
    protected Void doInBackground(UserService... params) {
        UserService userService = params[0];
        userService.getUser();
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要一些更"抽象"的东西,所以AsyncTask不需要知道"getUser"方法?但我无法找到如何做到这一点......也许AsyncTask对此无益?

Web*_*mer 6

有很多AsyncTask替代品:

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

和加上针 - Android的多线程库

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


小智 5

也许你可以使用像Retrofit这样的第三方库 如果你处理图像我强烈建议picasso


小智 5

请记住,Android 对线程和异步任务有限制。

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

  1. 排球-> http://www.androidhive.info/2014/05/android-working-with-volley-library-1/

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

更新:

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