我收到FATAL EXCEPTION: AsyncTask #1
错误。
我还没有创建异步任务我只是简单地调用了下面的代码。
我从连接到网络的类中调用以下内容:
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
context
已在MainActivity
。
我不确定我在这里做错了什么。
答案 0 :(得分: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
显示来自网络课程的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..
}
答案 1 :(得分:1)
这里有一个奇怪的答案:)
第一个人希望你从Activity
扩展Network
课程,第二个人告诉你你没有安装Android SDK:)
您只需要向Context
对象发送正确的Network
对象,您需要从getBaseContext()
方法发送Context
对象,因为此上下文对象适用于{ {3}}消息(Toast
)。
答案 2 :(得分:0)
Toast.makeText(getApplicationContext(), "Connection Successful", Toast.LENGTH_LONG).show()
答案 3 :(得分:0)
更改:
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
到
Toast.makeText(getBaseContext(), "Connection Successful", Toast.LENGTH_LONG).show();