Android 在UI线程进入睡眠状态之前显示Toast消息

Android 在UI线程进入睡眠状态之前显示Toast消息,android,multithreading,Android,Multithreading,在我的应用程序中,我使用了Thread.sleep,因此有足够的时间执行活动之外的一些操作,这些操作是关于启用和禁用应用程序的某些启动器的,如果用户选择了某些选项,但由于我不想让用户认为该应用程序已被阻止,我想通知他在收到新消息之前稍等片刻 问题是,由于Android在Thread.sleep调用之前设置toast消息的异步性,所以看起来应用程序已被阻止 我还使用了以下代码: new Thread(new Runnable() { public void run() {

在我的应用程序中,我使用了Thread.sleep,因此有足够的时间执行活动之外的一些操作,这些操作是关于启用和禁用应用程序的某些启动器的,如果用户选择了某些选项,但由于我不想让用户认为该应用程序已被阻止,我想通知他在收到新消息之前稍等片刻

问题是,由于Android在Thread.sleep调用之前设置toast消息的异步性,所以看起来应用程序已被阻止

我还使用了以下代码:

 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线程上睡眠。