I have made a client in my android app that connect to pc server. When my app connect to server i want to see "Connection established" , for this i'm using toast but my program crash at startup. Here there's the code:
protected String doInBackground(String... params) {
try {
Socket client = new Socket("192.168.1.2", 4444); //connect to server
Toast t = Toast.makeText(getApplicationContext(), "Connection established" ,Toast.LENGTH_LONG);
t.show();
client.close(); //closing the connection
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
i have this problem since i've written "Toast t = Toast.makeText(getApplicationContext(), "Connection established" ,Toast.LENGTH_LONG);"
here there's the logcat:
05-29 16:28:54.076: E/AndroidRuntime(32436): FATAL EXCEPTION: AsyncTask #1
05-29 16:28:54.076: E/AndroidRuntime(32436): java.lang.RuntimeException: An error occured while executing doInBackground()
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.os.AsyncTask$3.done(AsyncTask.java:299)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.lang.Thread.run(Thread.java:841)
05-29 16:28:54.076: E/AndroidRuntime(32436): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.os.Handler.<init>(Handler.java:197)
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.os.Handler.<init>(Handler.java:111)
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.widget.Toast$TN.<init>(Toast.java:324)
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.widget.Toast.<init>(Toast.java:91)
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.widget.Toast.makeText(Toast.java:238)
05-29 16:28:54.076: E/AndroidRuntime(32436): at com.example.social_network.MainActivity$myTask.doInBackground(MainActivity.java:34)
05-29 16:28:54.076: E/AndroidRuntime(32436): at com.example.social_network.MainActivity$myTask.doInBackground(MainActivity.java:1)
05-29 16:28:54.076: E/AndroidRuntime(32436): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-29 16:28:54.076: E/AndroidRuntime(32436): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-29 16:28:54.076: E/AndroidRuntime(32436): ... 4 more
thanks