У меня есть задание А, который имеет сокеты, и я открываю активность B по нажатию кнопки с целью от деятельности А.андроида деятельность в связи деятельности
public void onClick(View v) {
//open preferences activity
intent = new Intent(MainActivity.this, PreferencesActivity.class);
//using some bundle here to send data
.....
MainActivity.this.startActivityForResult(intent, 1);
}
Теперь, если вообще любой сокет связь происходит в активности A, тогда я должен определить, что (какое-то сообщение произошло в деятельности A) в деятельности B, и необходимо закрыть активность B и привести активность A на передний план. Связь сокета следующая.
ConnectSocket();
while (true) {
//wait for socket client
socClient = (SSLSocket) sslServerSocket.accept();
//once socket is connected send it back to activity
if (socClient != null) {
if (socketThread != null) {
connectedSocket = socClient;
socClient = null;
communicationThread = new ReadSocketThread();
communicationThread.start();
}
}
}
}
Здесь ReadsocketThread() - это поток, который считывает сокет для сообщений.
Как уведомить действие B, что-то произошло в действии A. Я попытался использовать обработчик для отправки сообщения, но не был успешным как обработчик в действии. A никогда не отправляет сообщение активности B. Как новичок, возможно, я не правильно использую.
1> использовать локальный трансляционный менеджер. - регистрировать трансляцию в одной активности и отправлять трансляцию из другого вида деятельности. 2> использование связанный сервис. –
спасибо за ответ .. я использовал localbroadcastmanager способен общаться ... хорошая ссылка с образцом кода находится здесь ... http://stackoverflow.com/questions/8802157/how-to-use-localbroadcastmanager –
Хорошо , убедитесь, что вы не обновляете какой-либо пользовательский интерфейс после действия onstop системного обратного вызова –