-2

我不知道发生了什么。我有一个计时器,我需要显示一个 toast 消息,所以我必须使用 runOnUiThread 来实现它。但是当代码执行到 Toast 时,它会失败:

private void Print(String message)
    {
       final String CustomMessage = message;
        try{
            this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    try
                    {
                    Toast.makeText(MainActivity.this,CustomMessage,Toast.LENGTH_LONG).show();
                    }
                    catch (Exception e)
                    {
                            String b = e.getMessage();//Null Pointer Exception.
                    }
                }
            });
        }
        catch (Exception Error){}
    }

这里是手表。

在此处输入图像描述

可能是什么原因?我一直这样做,没有什么是空的。

更新

这里是 LogCat 的一部分

在此处输入图像描述

4

2 回答 2

0

您不需要使用 runOnUIThread ,只需这样做:

private void Print(String message)
    {
       final String CustomMessage = message;

       Toast.makeText(MainActivity.this,CustomMessage,Toast.LENGTH_LONG).show();

    }
于 2013-09-26T15:19:20.910 回答
0

MainActivity.this当您尝试显示这一点时,您的实例严重混乱Toast。可能的原因包括:

  • 您正在Print()从初始化程序、构造函数或其他方式super.onCreate()调用之前在活动实例上调用

  • 您通过构造函数创建了一个实例MainActivity,而不是通过startActivity()

于 2013-09-26T16:30:45.580 回答