![](/img/trans.png)
[英]Can not create handler inside thread that has not called Looper.prepare()
[英]Can't create handler inside thread that has not called Looper.prepare() inside Handler()
我正在從后台線程調用Handler類。 在Handler類中,我嘗試顯示吐司。 從理論上講,它應該可以正常工作,因為Handler是將UI任務轉發到主UI線程的Queue。 但是,就我而言,我正在例外。
private void firstTimeLogin() {
final LoginUiThreadHandler loginHandler = new LoginUiThreadHandler();
new Thread(new Runnable() {
@Override
public void run() {
Message m = loginHandler.obtainMessage();
Bundle bund = new Bundle();
bund.putInt("loginResult", 1);
m.setData(bund);
loginHandler.handleMessage(m);
}
}).start();
}
private class LoginUiThreadHandler extends Handler {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int loginResult = msg.getData().getInt("loginResult");
if(loginResult == 0)
Toast.makeText(getActivity().getApplicationContext(), "Login success", Toast.LENGTH_SHORT).show();
}
}
我究竟做錯了什么?
用。。。來代替 -
LoginUiThreadHandler loginHandler = new LoginUiThreadHandler(Looper.getMainLooper());
代替-
LoginUiThreadHandler loginHandler = new LoginUiThreadHandler();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.