Gio*_*yan 3 java android retrofit retrofit2
这是我的代码:
private void getUserData(){
//create Retrofit instance
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
Retrofit retrofit = builder.build();
//get client & call object for the request
APIService userService = retrofit.create(APIService.class);
Map<String, Object> map = new HashMap<>();
map.put("device_id", Utils.GetDeviceID(DashboardActivity.this));
Call call = userService.getUser(map);
//execute network request
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if(response.isSuccessful() && response.body() != null){
response.body();
UserDataManager.$().setUserDataResponse(new com.google.gson.Gson().toJson(response.body()));
if(UserDataManager.$().getUserData() != null){
Log.d(TAG, "USER ID: " + UserDataManager.$().getUserData().getId());
}
}
}
@Override
public void onFailure(Call call, Throwable t) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题:如何每 5 秒调用一次该方法,检查是否有新数据来自后端?
很高兴提供建议和提示,谢谢
小智 5
RxAndroid 在这种情况下会非常有用。你可以像这样创建循环
Subscription subscription = Observable.interval(1000, 5000,
TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Long>() {
public void call(Long aLong) {
// here is the task that should repeat
}
});
Run Code Online (Sandbox Code Playgroud)
如果你想停止循环只需调用
subscription.unsubscribe()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7855 次 |
| 最近记录: |