2013-03-26 70 views
3

我收到FATAL EXCEPTION: AsyncTask #1错误。Android Toast错误

我还没有创建一个异步任务,我简单地称为下面的代码。

我打电话从连接到网络的一类以下内容:

Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show(); 

context已经从MainActivity构造通过。

我不知道我在做什么错在这里。

+0

您可以发布Toast命令所在的代码吗?它是在一个活动,一个服务,一个线程......这一切都将帮助人们回答你。你可能没有创建一个AsyncTask,但是你创建了什么? – 2013-03-26 11:48:13

+0

你能显示整个代码吗?请问 – Developer 2013-03-26 11:48:27

+0

和整个日志输出? – dumbfingers 2013-03-26 11:48:45

回答

5

化妆以下用于示出从Network类(非活性类)吐司改变:

步骤:1通行证活动上下文到网络类,而不是getBaseContext()

netConnection = new Network(new Network.OnMessageReceived() { 
      @Override 
      // here the messageReceived method is implemented 
      public void messageReceived(String message) { 
       // this method calls the onProgressUpdate 
       publishProgress(message); 
      } 
    },Your_Current_Activity_Name.this); 

步骤2:使用runOnUiThread来显示Toast from网络课程:

public boolean connect() { 
//....your code.. 
Activity activity = (Activity) context; 
activity.runOnUiThread(new Runnable() { 
    public void run() { 
     //show your Toast here.. 
     Toast.makeText(context,"Connection Successful", Toast.LENGTH_LONG).show(); 
    } 
}); 
//....your code.. 
} 
+0

谢谢,现在就试试看,看起来很有希望。 – Zapnologica 2013-03-26 12:35:28

+0

伟大的答案!非常感谢你。完美工作。 – Zapnologica 2013-03-26 12:38:01

+0

@Zapnologica:很高兴能帮到你。 – 2013-03-26 12:42:31

0
Toast.makeText(getApplicationContext(), "Connection Successful", Toast.LENGTH_LONG).show() 
+0

getApplicationContext()不起作用,eclipse说创建方法。 – Zapnologica 2013-03-26 11:53:44

+0

酷..有没有android sdk我认为你有! – 2013-03-26 11:56:57

+0

Android SDk已安装,应用程序的所有其他方面均可正常工作。如果类扩展活动,getApplicationContext()不仅可以工作吗? – Zapnologica 2013-03-26 11:58:57

0

变化:

Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show(); 

Toast.makeText(getBaseContext(), "Connection Successful", Toast.LENGTH_LONG).show(); 
+0

getBaseContext()不起作用,它表示创建方法'getbaseContext' – Zapnologica 2013-03-26 11:53:24

+0

@ user1331971您可以将'public class Network'更改为 'public class Network extends Activity'? – Bigflow 2013-03-26 12:04:09

+0

@ user1331971然后,您可以使用我的或Nirav的解决方案 – Bigflow 2013-03-26 12:04:36

1

这里什么奇怪的答案:)

第一个男人要你从Activity扩展Network类,第二个告诉你,你还没有Android SDK :)

你只需要正确的Context对象发送到您的Network对象,你需要从getBaseContext()方法发送Context对象,因为这个上下文对象是Toast消息(here you can read explanation about that)是正确的。