3

FATAL EXCEPTION: AsyncTask #1エラーが発生しました。

私は非同期タスクを作成していません。単に以下のコードを呼び出しました。

ネットワークに接続するクラスから次のように呼び出しています。

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

contextからコンストラクターに渡されましたMainActivity

ここで何が間違っているのかわかりません。

4

4 に答える 4

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ネットワーククラスからトーストを表示するために使用します:

 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

ここでなんて奇妙な答えでしょう:)

Network最初の人はあなたにクラスを拡張してほしいと言っActivityています、2番目の人はあなたがAndroidSDKを持っていないことをあなたに伝えます:)

このコンテキストオブジェクトはメッセージに対して正しいため、オブジェクトに正しいContextオブジェクトを送信する必要があります。メソッドからオブジェクトNetworkを送信する必要があります(ここでその説明を読むことができます)。ContextgetBaseContext()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 に答える