3

我收到一个FATAL EXCEPTION: AsyncTask #1错误。

我没有创建异步任务,我只是简单地调用了下面的代码。

我从连接到网络的类中调用以下内容:

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

context已在构造函数中从MainActivity.

我不确定我在这里做错了什么。

4

4 回答 4

5

Network从类(非活动类)显示 Toast 进行以下更改:

步骤: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从 Network 类显示 Toast :

 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..
}
于 2013-03-26T12:31:17.880 回答
1

这里有什么奇怪的答案:)

第一个人要你扩展NetworkActivity,第二个告诉你你还没有 Android SDK :)

您只需要将正确Context的对象发送到您的Network对象,您需要Context从方法发送对象,因为此上下文对象对于消息getBaseContext()是正确的(您可以在此处阅读有关该内容的说明)。Toast

于 2013-03-26T12:17:14.997 回答
0
Toast.makeText(getApplicationContext(), "Connection Successful", Toast.LENGTH_LONG).show()
于 2013-03-26T11:47:04.980 回答
0

改变:

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

Toast.makeText(getBaseContext(), "Connection Successful", Toast.LENGTH_LONG).show();
于 2013-03-26T11:51:05.430 回答