我不知道发生了什么。我有一个计时器,我需要显示一个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的一部分
答案 0 :(得分:0)
你不需要使用runOnUIThread,就这样做:
private void Print(String message)
{
final String CustomMessage = message;
Toast.makeText(MainActivity.this,CustomMessage,Toast.LENGTH_LONG).show();
}
答案 1 :(得分:0)
当您尝试展示此MainActivity.this
时,您的Toast
实例会严重搞乱。可能的原因包括:
在活动实例上调用Print()
之前,您正在从初始化程序,构造函数或其他方式调用super.onCreate()
您通过构造函数创建了MainActivity
的实例,而不是通过startActivity()