在这个类中,生成了一个List,应该输出到Log,但是这并没有发生,虽然创建了流
private class LooperThread extends Thread implements Handler.Callback{
Handler handler;
@Override
public void run() {
Looper.prepare();
handler = new Handler(this);
Looper.loop();
}
@Override
public boolean handleMessage(Message message) {
if(message.what == 0){
DepositGeneration generation = new DepositGeneration();
DepositOperations operations = new DepositOperations(generation.setList());
List<DepositItem> list = operations.sortedList();
for (int i = 0; i < list.size(); i++) {
Log.d("TAG", list.get(i).getName() +
" " + new SimpleDateFormat("dd.MM.yyyy").format(list.get(i).getOpenedDate()) +
" " + new DecimalFormat("#0.00").format(list.get(i).getAmount()));
}
}
return true;
}
public Handler getHandler() {
return handler;
}
}
而他的呼唤
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
looperThread = new LooperThread();
looperThread.start();
}
最后我破坏了溪流
@Override
public void onDestroy() {
if(looperThread.getHandler() != null){
Log.d("TAG", "DESTROY");
looperThread.getHandler().getLooper().quit();
}
super.onDestroy();
}
已销毁出口的日志中的消息
更改呼叫和传递消息但未执行
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
looperThread = new LooperThread();
if (looperThread.getHandler() != null){
Message message = looperThread.getHandler().obtainMessage(0);
message.sendToTarget();
}
looperThread.start();
}
使用异步请求会更容易更好。
它是通过这种方式完成的:
像这样调用:
就这样。你不必受苦。:)
handleMessage属于该类并在收到消息并执行该消息时Handler.Callback被该类调用。对这个方法一无所知,也不会自发执行它。HandlerThread我解决了问题,我向 oncreateView 发送消息