Android 在Looper的帮助下访问/发布消息到UI线程
如何从线程将消息发布到主UI循环器? 我正在开发一个独立的助手类,它应该显示一个窗口 错误的解决方案是通过构造传递视图,然后使用View.post(), 但我正在寻找更好的解决方案 我原以为这会奏效,但我得到了常见的“ui线程上没有”异常Android 在Looper的帮助下访问/发布消息到UI线程,android,multithreading,Android,Multithreading,如何从线程将消息发布到主UI循环器? 我正在开发一个独立的助手类,它应该显示一个窗口 错误的解决方案是通过构造传递视图,然后使用View.post(), 但我正在寻找更好的解决方案 我原以为这会奏效,但我得到了常见的“ui线程上没有”异常 public class Example { private Context context; public Example(Context context) { this.context = context; }
public class Example {
private Context context;
public Example(Context context) {
this.context = context;
}
public void build() {
}
public void show() {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(context, "test", Toast.LENGTH_LONG);
}
});
}
}
只需传递上下文并使用runonUiThread方法,如下所示
((Activity)contextObj).runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context, "test", Toast.LENGTH_LONG).show();
}
});