Android 在UI线程进入睡眠状态之前显示Toast消息
在我的应用程序中,我使用了Thread.sleep,因此有足够的时间执行活动之外的一些操作,这些操作是关于启用和禁用应用程序的某些启动器的,如果用户选择了某些选项,但由于我不想让用户认为该应用程序已被阻止,我想通知他在收到新消息之前稍等片刻 问题是,由于Android在Thread.sleep调用之前设置toast消息的异步性,所以看起来应用程序已被阻止 我还使用了以下代码:Android 在UI线程进入睡眠状态之前显示Toast消息,android,multithreading,Android,Multithreading,在我的应用程序中,我使用了Thread.sleep,因此有足够的时间执行活动之外的一些操作,这些操作是关于启用和禁用应用程序的某些启动器的,如果用户选择了某些选项,但由于我不想让用户认为该应用程序已被阻止,我想通知他在收到新消息之前稍等片刻 问题是,由于Android在Thread.sleep调用之前设置toast消息的异步性,所以看起来应用程序已被阻止 我还使用了以下代码: new Thread(new Runnable() { public void run() {
new Thread(new Runnable() {
public void run()
{
// a potentially time consuming task
Toast.makeText(getApplicationContext(),"mymessage",Toast.LENGTH_LONG).show();
}
}).start();
[some more code]
Thread.sleep(10000);
我认为即使Thread.sleep正在发生,也应该执行,但我知道应用程序崩溃了,但这是一个罕见的崩溃,因为它在我的android设备上显示了消息,但在调试模式下一切看起来都正常,以至于我可以继续调试应用程序
即使在执行Thread.sleep时,您知道如何实现显示消息的Toast吗?永远不要在UI线程中调用
Thread.sleep()
。不要在非UI线程中调用Toast
。您应该阅读AsyncTask
。我会检查的,谢谢。toast永远不会显示,因为要进行任何UI更新,都需要绘制UI。只有当控件返回到框架中的消息队列时,才会发生这种情况,只要您处于睡眠状态,这种情况就不会发生。因此,永远不要在UI线程上睡眠。