这段代码执行后为什么不能显示message组件 static void message(RelativeLayout father,String title,String messag,boolean add){ if (add){ message = new message(context.context,title,messag); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(300, ViewGroup.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.CENTER_IN_PARENT); cover(father, true); father.addView(message,params); global.stop = true; message.my_yes.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { stop = false; message(father,"","",false); } }); while (global.stop){} }else { cover(father, false); father.removeView(message); } }
时间: 2024-02-14 10:07:10 浏览: 72
这段代码的问题可能是在 `while (global.stop){}` 循环中使用了阻塞线程的方式来等待用户的操作。这会导致主线程被阻塞,导致应用程序无响应(ANR)。
正确的做法是使用异步回调的方式来等待用户的操作,例如使用 `Dialog` 或 `AlertDialog` 来显示消息,并在用户点击确定后执行回调操作。这样可以避免阻塞主线程,提高应用程序的响应性能。
此外,还需要检查 `message` 组件是否正确地初始化和设置了显示内容。如果 `message` 组件没有正确设置内容,可能会导致无法显示。还需要确保布局参数 `params` 设置正确,组件能够正确地被添加到 `father` 布局中。
阅读全文