有没有办法知道我的改装电话何时完成了它的职责?我喜欢知道什么时候收到所有数据,所以代码可以继续,比如开始另一个活动或者使用第一次调用的数据做一秒钟?
Ps.:我正在使用异步请求(.enqueue).
编辑:
getContact(){ //Get a contact List from the server Call<List<ModelContact>> callM = contactInterface.createRContact(listContact); callM.enqueue(new Callback<List<ModelContact>>() { @Override public void onResponse(Response<List<ModelContact>> response,Retrofit retrofit) { // Fetch the List from Response and save it on the local database } @Override public void onFailure(Throwable t) { Log.i("TAG","Error: " + t.getMessage()); } }); //Gets a object containing some configurations Call<Configs> callC = contactInterface.getConfigs(Configs); callC.enqueue(new Callback<Configs>() { @Override public void onResponse(Response<Configs> response,Retrofit retrofit) { // Fetch the Configs object and save it on the database } @Override public void onFailure(Throwable t) { Log.i("TAG","Error: " + t.getMessage()); } }); //Here I need to start a new activity after the calls Intent loginact = new Intent(TokenActivity.this,LoginActivity.class); startActivity(loginact); }
解决方法
也许您可以使用两个布尔标志并在getContact方法之外启动新意图.
像这样的东西:
public class MyActivity extends Activity { //lot of code omitted private boolean cIsFinished; private boolean mIsFinished; private void getContact(){ //create M and C m.onResponse(){ //do whatever you want with data and call startIntent mIsFinished=true; startIntent(); } c.onResponse(){ //do whatever you want with data and call startIntent cIsFinished=true; startIntent(); } } private synchronized void startIntent(){ if(cIsFinished && mIsFinished){ //startIntentHere! Intent intent = new blah blah blah } } }