I have a problem. When I run my android program I have a error: "unfortunately has stopped android". Why I see this error when I run application? hear is my file:
enter code here
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SimpleClientActivityActivity extends Activity {
private Socket client;
private PrintWriter printwriter;
private EditText textField;
private Button button;
private String messsage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//textField = (EditText) findViewById(R.id.editText1); //reference to the text field
button = (Button) findViewById(R.id.button1); //reference to the send button
//Button press event listener
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//messsage = textField.getText().toString(); //get the text message on the text field
//textField.setText(""); //Reset the text field to blank
try {
client = new Socket("10.0.2.2", 4444); //connect to server
printwriter = new PrintWriter(client.getOutputStream(),true);
printwriter.write(messsage); //write the message to output stream
printwriter.flush();
printwriter.close();
client.close(); //closing the connection
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
I would like to send sms to PC server with my adnroid client
It may be because you are doing network operations on the main thread. Look into your logcat and there will be info, in red.
try this
new Thread(){
@Override
public void run(){
// your onClick code here
}
}.start();
Also you can use AsyncTask for network operations
public class YourTask extends AsyncTask{
private Context context;
private ProgressDialog dialog;
public SplitCueTask(Context context) {
this.context = context;
this.dialog = new ProgressDialog(context);
}
@Override
protected void onPreExecute() {
dialog.setMessage(getResources().getString(R.string.loading));
dialog.show();
}
@Override
protected Boolean doInBackground(Object... objects) {
// you logic here, return result
return someObject.
}
@Override
protected void onPostExecute(Object someObject) {
if (dialog.isShowing())
dialog.dismiss()
// handle result here, post it on UI or something else
}
}
Run task
new YourTask(context).execute();
And dont forget to add INTERNET PERMISSION to AndroidManifest
<uses-permission android:name="android.permission.INTERNET" />
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.