我有个问题。我使用的是一个FileObserver,它将新文件从被监视的目录移动到另一个以前指定的目录。在我的想法中,应该显示一条祝酒词:“文件xy已被移动”,只要观察者监视目录,如果应用程序仅在后台,也是如此。但我没能让它起作用。它总是告诉我,有一个RuntimeException,如果不调用Looper.prepare(),就无法完成它。
05-11 13:21:28.484:警告/System.err(3397):java.lang.RuntimeException:无法在没有调用Looper.prepare()的线程中创建处理程序
我也尝试过使用处理程序,但我也没有让它工作。
还有其他人的主意吗?提前谢谢。
向你问好,托比
发布于 2011-05-11 11:56:11
显然,您的FileObserver运行(或是)另一个线程。不能从非UI线程修改UI。将一个Handler传递给您的FileObserver并从它发送消息。阅读关于操作者的文章。
发布于 2014-01-10 19:28:02
在Toast语句之前添加以下内容:
runOnUiThread(new Runnable() {
public void run()
{
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
});这将使它在UI线程上运行。希望这能有所帮助。
发布于 2011-05-11 11:45:19
您在演讲会消息的上下文中使用了什么?必须有一种方法在屏幕上显示一些东西。
https://stackoverflow.com/questions/5963438
复制相似问题