我收到一个FATAL EXCEPTION: AsyncTask #1
错误。
我没有创建异步任务,我只是简单地调用了下面的代码。
我从连接到网络的类中调用以下内容:
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
context
已在构造函数中从MainActivity
.
我不确定我在这里做错了什么。
我收到一个FATAL EXCEPTION: AsyncTask #1
错误。
我没有创建异步任务,我只是简单地调用了下面的代码。
我从连接到网络的类中调用以下内容:
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
context
已在构造函数中从MainActivity
.
我不确定我在这里做错了什么。
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..
}
这里有什么奇怪的答案:)
第一个人要你扩展Network
类Activity
,第二个告诉你你还没有 Android SDK :)
您只需要将正确Context
的对象发送到您的Network
对象,您需要Context
从方法发送对象,因为此上下文对象对于消息getBaseContext()
是正确的(您可以在此处阅读有关该内容的说明)。Toast
Toast.makeText(getApplicationContext(), "Connection Successful", Toast.LENGTH_LONG).show()
改变:
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
至
Toast.makeText(getBaseContext(), "Connection Successful", Toast.LENGTH_LONG).show();