1. 인터페이스
pulbic interface IClientListener
{
private void OnConnetd();
private void OnDisconnecte();
}
2. 스레드를 상속받은 클래스
public Client extend Thread implement Runnable
{
private IClientListener _iClientListener = null;
public void SetClientEventListener(IClientEventListener listener)
{
this. _iClientListener = listener;
}
pulic void run()
{
while(true)
{
// 소켓 연결 성공 이벤트 발생
_iClientListener.OnConnected();
}
}
}
3. 메인 액티비티
public class MainActivity extends Activity implement IClientListener
{
onCreate
{
Client client = new Client();
client.SetClientListener(this);
}
public void OnConneted()
{
// 이벤트 발생 UI 처리
}
}
------------------------
다음과 같은 구조로 만들어져 있는데
메인액티비티에서 onConneted()가 발생하는 것을 확인하였습니다만
스레드 쪽에서 돌다보니 ui처리에서 고민이 되는군요
그렇다고 ui 처리를 할때마다 매번 메인 액티비티에서
runOnUiThread()를 처리해주기도 그렇드라구요...
위와 같은 소스 구조에서 메인 액티비티에서 runOnUiThread()를 사용하지 않고
Client 측에서 UI 처리를 할수있도록 할 수 있는 방법은 없는건가요?