Android 在活动之间切换时处理/销毁线程

Android 在活动之间切换时处理/销毁线程,android,thread-safety,Android,Thread Safety,我的申请表中有两项活动。MainActivity有一个线程,用于建立与服务器的连接,如下所示:- public class MainActivity extends Activity implements OnItemSelectedListener { private Socket socket; private static final int SERVERPORT = 8020; private static final String SERVER_IP = "192.168.1.36"

我的申请表中有两项活动。MainActivity有一个线程,用于建立与服务器的连接,如下所示:-

public class MainActivity extends Activity implements OnItemSelectedListener {

private Socket socket;
private static final int SERVERPORT = 8020;
private static final String SERVER_IP = "192.168.1.36";
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); 
            new Thread(new ServerThread()).start();
    }
    public void onClickon(View view) {
    try{

    PrintWriter out = new PrintWriter(new BufferedWriter(
            new OutputStreamWriter(socket.getOutputStream())),
            true);
    out.println("0"); 
    }
    catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
     private void newActivity(View view) {
     Intent intent = new Intent(MainActivity.this, LockActivity.class);
     startActivity(intent);
     }
     class ServerThread implements Runnable {

    @Override
    public void run() {

        try {
            InetAddress serverAddr = InetAddress.getByName(SERVER_IP);

            socket = new Socket(serverAddr, SERVERPORT);

        } catch (UnknownHostException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }

    }

}
    }
当用户单击按钮向服务器发送消息时,将调用onclick函数。 现在,当用户想要转到新活动时,会调用newActivity函数

新活动的代码如下所示

public class NewActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lock);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }
}
public void buttonOKclicked(View v)
    {
        String msg=Integer.toString(foo);
        Intent intent = new Intent(LockActivity.this, MainActivity.class);
        intent.putExtra("keyMessage", msg);
        startActivity(intent);

    }
    }
当用户在NewActivity中时,他单击按钮,该按钮调用返回到MainActivity的buttonOkclicked

当用户返回MainActivity时,应用程序无法连接回服务器

我应该如何解决这个问题

我是否可以在创建新活动之前终止服务器线程,这样当用户返回主活动时,就可以启动一个新线程