Android Toast错误
我收到一个Android Toast错误,android,asynchronous,toast,Android,Asynchronous,Toast,我收到一个致命异常:AsyncTask#1错误 我没有创建一个异步任务,我只是调用了下面的代码 我正在从连接到网络的类调用以下命令: Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show(); 上下文已从main活动在构造函数中传递 我不确定我在这里做错了什么 变化: Toast.makeText(getApplicationContext(), "Connection Successful", Toa
致命异常:AsyncTask#1
错误
我没有创建一个异步任务,我只是调用了下面的代码
我正在从连接到网络的类调用以下命令:
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
上下文
已从main活动
在构造函数中传递
我不确定我在这里做错了什么 变化:
Toast.makeText(getApplicationContext(), "Connection Successful", Toast.LENGTH_LONG).show()
Toast.makeText(context, "Connection Successful", Toast.LENGTH_LONG).show();
到
多么奇怪的回答:) 第一个家伙想让你从中扩展
网络
类,第二个家伙告诉你你还没有Android SDK:)
您只需要将正确的
上下文
对象发送到您的网络
对象,您需要从方法发送上下文
对象,因为此上下文对象对于消息()是正确的。对显示来自网络
类(非活动类)的Toast进行以下更改:
步骤:1将活动上下文传递给网络类,而不是getBaseContext()
:
步骤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..
}
您可以发布Toast命令所在的代码吗?它是否存在于活动、服务、线程中。。。。所有这些都将帮助人们回答你。您可能没有创建AsyncTask,但您创建了什么?能否显示整个代码…?以及整个日志输出?您试图在doInBackground中显示Toast的位置?如果是,则将其移动到onPostExecute方法中,编写如下Toast.makeText(YourActivity.this,“xyz click”,Toast.LENGTH_SHORT).show();getBaseContext()不起作用,它说创建方法“getBaseContext”@user1331971您可以将
公共类网络
更改为公共类网络扩展活动
?@user1331971然后您可以使用我的,或Nirav的solution@user1331971:您必须扩展Activity,这将如何影响类的功能?此类不是活动,主要活动调用网络类。我只想让这个类在调用时说连接或连接失败。因此,它必须在调用它的活动上显示toast。getApplicationContext()不起作用,eclipse说创建方法。安装了Android SDk,应用程序的所有其他方面都正常工作。getApplicationContext()不仅在类扩展活动时有效吗?谢谢,我现在就试试,看起来很有希望。@Zapnologica:很高兴我能帮忙。回答得很好!我使用它来显示异步任务中的Toast。
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);
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..
}