Java代码块回调,QueueEvent - 队列化执行线程和代码块
QueueEvent
隊列化執(zhí)行線程和代碼塊
函數(shù)說明
1.主要有兩個子類,QueueEventThread用來順序執(zhí)行線程,QueueEventCode用來順序執(zhí)行代碼
2.可以使用setSpeed()設(shè)置執(zhí)行速率
3.enqueue()加入隊列
4.next()執(zhí)行隊列中的下一個事件
5.setSnyc()是否同步執(zhí)行
6.finish()停止隊列
回調(diào)說明
1.回調(diào)只有QueueEventCode對象存在
2.onDoingCode()回調(diào),是執(zhí)行代碼塊的回調(diào)。
3.onDoneCode()回調(diào),是代碼執(zhí)行完畢的回調(diào)。
舉例
public void getData1(){
QueueEventCode.getInstance().enqueue(new OnCodeEvent() {
@Override
protected void onDoingCode(Bundle b) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().get().url("http://www.baidu.com/").build();
Call call1 = client.newCall(request);
//查詢省
call1.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失敗
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
final String responseStr = response.body().string();
//成功
//查詢到省
Bundle bundle=new Bundle();
bundle.putString("key",responseStr);
QueueEventCode.getInstance().next(bundle);//通知下次請求開始,并傳遞參數(shù)
}
});
}
}).enqueue(new OnCodeEvent() {
@Override
protected void onDoingCode(Bundle b) {//可以從bundle中取出上一次回調(diào)來的參數(shù),上一次返回的是省
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().get().url("http://www.baidu.com/").build();
Call call1 = client.newCall(request);
//查詢市
call1.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失敗
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
final String responseStr = response.body().string();
//成功
//查詢到市
Bundle bundle=new Bundle();
bundle.putString("key",responseStr);
QueueEventCode.getInstance().next(bundle);//通知下次請求開始,并傳遞參數(shù)
}
});
}
}).enqueue(new OnCodeEvent() {
@Override
protected void onDoingCode(Bundle b) {//可以從bundle中取出上一次回調(diào)來的參數(shù),上一次返回的是市
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().get().url("http://www.baidu.com/").build();
Call call1 = client.newCall(request);
//查詢市
call1.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失敗
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
final String responseStr = response.body().string();
//成功
//查詢到縣
Bundle bundle=new Bundle();
bundle.putString("key",responseStr);
QueueEventCode.getInstance().next(bundle);//通知下次請求開始,并傳遞參數(shù)
}
});
}
});
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Java代码块回调,QueueEvent - 队列化执行线程和代码块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ISO9000认证与互联网转型
- 下一篇: java 运算优先级_Java-运算符优