安卓子线程中,Handler绑定主线程Looper后,发送Message,主线程未收到
//子线程
public static void reqImg(String url){
new Thread(new Runnable() {
@Override
public void run() {
try {
URL Url=new URL(url);
Bitmap bitmap = BitmapFactory.decodeStream(Url.openStream());
Handler handler=new Handler(Looper.getMainLooper());
Message msg=handler.obtainMessage(com.example.xingyi.ui.Handler.TOOL_BAR_IMG,bitmap);
handler.sendMessage(msg);
Log.d("http","send");
}catch (Exception e){
Log.e("http",e.getMessage());
}
}
}).start();
//主线程
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case TOOL_BAR_IMG: // 静态整型常量
BitmapDrawable drawable=new BitmapDrawable((Bitmap) msg.obj);
fragment.getToolbarLayout().setBackground(drawable);
Log.d("http","rec"); //打印接收标志
break;
default:
Toast.makeText(context, "MessageCodeError", Toast.LENGTH_SHORT).show();
}
没有打印rec,说明没接收到