runOnUiThread在Android中不起作用

时间:2018-01-12 20:28:38

标签: android multithreading android-runonuithread

我在logcat上看到Here3和Here4 True True但是命令(alertdialog,mediaPlayerStop和VibrateStop)在run()方法中不起作用。有什么建议吗? 提前谢谢。

    if(check == 1)
    {
        Log.i("XXX", "Here3");
        runOnUiThread(new Runnable()
        {
            @Override
            public void run()
            {
                new Handler().postDelayed(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        Log.i("XXX", "Here4 " + voiceSwitch.isChecked() + " " + vibrateSwitch.isChecked());
                        if(voiceSwitch.isChecked())
                        {
                            mediaPlayerStop();
                        }
                        if(vibrateSwitch.isChecked())
                        {
                            vibrateStop();
                        }
                        builder.show().dismiss();
                    }
                }, 5000);
            }
        });
    }

2 个答案:

答案 0 :(得分:1)

你不能在UI上使用run thread 使用AsynckTask类并使用builder.show().dismiss();

实现onPostExecute()方法

答案 1 :(得分:-1)

可能是一个简单的遗漏,比如我可以看到这一行

 new Handler().postDelayed(new Runnable()

没有关闭

猜猜应该是:

new Handler().postDelayed(new Runnable());