Java Can';t在未调用循环器的线程内创建处理程序
我得到以下错误:Java Can';t在未调用循环器的线程内创建处理程序,java,android,toast,Java,Android,Toast,我得到以下错误: 08-27 17:49:17.995: E/AndroidRuntime(10085): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 08-27 17:49:17.995: E/AndroidRuntime(10085): at android.os.Handler.<init>(Handler.java:
08-27 17:49:17.995: E/AndroidRuntime(10085): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
08-27 17:49:17.995: E/AndroidRuntime(10085): at android.os.Handler.<init>(Handler.java:121)
08-27 17:49:17.995: E/AndroidRuntime(10085): at android.widget.Toast$TN.<init>(Toast.java:361)
08-27 17:49:17.995: E/AndroidRuntime(10085): at android.widget.Toast.<init>(Toast.java:97)
08-27 17:49:17.995: E/AndroidRuntime(10085): at android.widget.Toast.makeText(Toast.java:254)
我如何解决这个问题?类似的方法应该可以:
public static void alertUser(String str) {
runOnUiThread(setErrorMessage);
}
private Runnable setErrorMessage = new Runnable() {
@Override
public void run() {
Toast toast = Toast.makeText(mInstance.getApplicationContext(), str,
Toast.LENGTH_LONG);
toast.show();
}
};
似乎您正在从线程更新ui,但在这个答案上,他们提出了其他建议:
public static void alertUser(String str) {
runOnUiThread(setErrorMessage);
}
private Runnable setErrorMessage = new Runnable() {
@Override
public void run() {
Toast toast = Toast.makeText(mInstance.getApplicationContext(), str,
Toast.LENGTH_LONG);
toast.show();
}
};