Skip to content

Latest commit

 

History

History
39 lines (36 loc) · 1.24 KB

rxasynctask.md

File metadata and controls

39 lines (36 loc) · 1.24 KB

它完全可以替代android sdk中自带的AsyncTask使用,底层使用rxjava从而无需关心线程池的问题,开发者只需实现onExecute()即可。 它支持链式调用,支持重试机制retry()。
默认情况下它是这样的,只需实现onExecute()和success()

     new RxAsyncTask<String>(){
            @Override
            public String onExecute() {
                return RestClient.get("https://api.github.com/users/fengzhizi715").body();
            }
        }.success(new RxAsyncTask.SuccessHandler<String>() {
            @Override
            public void onSuccess(String content) {
                L.json(content);
            }
        }).start();

使用重试机制retry()时,还需要实现failed(),以便重试失败后调用failed()。

		new RxAsyncTask<String>() {
			@Override
			public String onExecute() {
				return RestClient.get("https://api.github.com/users/fengzhizi715").body();
			}
		}.retry(3)
		 .success(new RxAsyncTask.SuccessHandler<String>() {
			@Override
			public void onSuccess(String content) {
				L.json(content);
			}
		}).failed(new RxAsyncTask.FailedHandler() {
			@Override
			public void onFail(Throwable e) {
				L.e("error=" + e.getMessage());
			}
		}).start();