Проект, над которым я работаю, нуждается в таком типе поведения. Пользователю будет представлен пользовательский интерфейс, который даст им возможность подключиться и отключиться от сервера. Я также хотел бы, чтобы этот пользовательский интерфейс отображал статус подключения, «подключен или отключен». Всякий раз, когда пользователь нажимает на соединение, приложение запускает поток, который обрабатывает соединение с сервером. Пользователь по-прежнему будет смотреть на основной интерфейс. Когда они запускают это соединение, и пока соединение остается, я хотел бы, чтобы состояние соединения было «подключено». Если соединение когда-либо сломалось в любой момент, я бы хотел, чтобы он отображался отключенным. Ниже перечислено то, что у меня есть.Android Вопрос по теме и классу
Мой вопрос ... Я делаю резьбу справа? Так что телефон не будет раздавлен соединением сервера, пока он подключен?
Кроме того, как я могу получить главный пользовательский интерфейс, чтобы отображать состояние соединения сервера и отображать, когда соединение нарушено?
Заранее благодарен! Если у вас есть дополнительные вопросы, пожалуйста, дайте мне знать.
The server connection thread.
public class ConnectDevice implements Runnable {
private boolean connected;
private ObjectInputStream ois;
public void run() {
try {
InetAddress host = InetAddress.getByName("192.168.234.1");
Socket socket = new Socket(host.getHostName(), 7777);
connected = true;
while (connected) {
try {
ois = new ObjectInputStream(socket.getInputStream());
String message = (String) ois.readObject();
System.out.println("Message: " + message);
}
catch (Exception e) {
e.printStackTrace();
}
}
ois.close();
} catch (UnknownHostException e) {
e.printStackTrace();
connected = false;
} catch (IOException e) {
e.printStackTrace();
connected = false;
} /*catch (ClassNotFoundException e) {
e.printStackTrace();
connected = false;
}*/
}
}
The main UI and main class.
public class SmartApp extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.intro);
final Button firstTimeButton = (Button) findViewById(R.id.firstTimeButton);
firstTimeButton.setOnClickListener(
new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
Intent userCreationIntent = new Intent(v.getContext(), UserCreation.class);
startActivityForResult(userCreationIntent, 0);
}
});
final Button connectDeviceButton = (Button) findViewById(R.id.connectDeviceButton);
connectDeviceButton.setOnClickListener(
new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Intent connectDeviceIntent = new Intent(v.getContext(), ConnectDevice.class);
//startActivityForResult(connectDeviceIntent, 0);
Thread cThread = new Thread(new ConnectDevice());
cThread.start();
}
});
}
}
wow im делать то же самое, я сообщу, если это сработает завтра – Reno
Любая помощь с благодарностью. благодаря – prolink007