Java代码块回调,QueueEvent - 队列化执行线程和代码块
QueueEvent
隊列化執行線程和代碼塊
函數說明
1.主要有兩個子類,QueueEventThread用來順序執行線程,QueueEventCode用來順序執行代碼
2.可以使用setSpeed()設置執行速率
3.enqueue()加入隊列
4.next()執行隊列中的下一個事件
5.setSnyc()是否同步執行
6.finish()停止隊列
回調說明
1.回調只有QueueEventCode對象存在
2.onDoingCode()回調,是執行代碼塊的回調。
3.onDoneCode()回調,是代碼執行完畢的回調。
舉例
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);//通知下次請求開始,并傳遞參數
}
});
}
}).enqueue(new OnCodeEvent() {
@Override
protected void onDoingCode(Bundle b) {//可以從bundle中取出上一次回調來的參數,上一次返回的是省
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);//通知下次請求開始,并傳遞參數
}
});
}
}).enqueue(new OnCodeEvent() {
@Override
protected void onDoingCode(Bundle b) {//可以從bundle中取出上一次回調來的參數,上一次返回的是市
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);//通知下次請求開始,并傳遞參數
}
});
}
});
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Java代码块回调,QueueEvent - 队列化执行线程和代码块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ISO9000认证与互联网转型
- 下一篇: java美元兑换,(Java实现) 美元