2012-06-15 2 views
0

나는 안드로이드 용 xmpp 채팅 클라이언트를 만들고 있습니다. asmack과 관련된 모든 작업이 완료되었으며 주 활동에서 친구 목록을 검색하여 표시 할 수 있습니다. 또한 나는 친구들로부터 채팅 메시지를받을 수있다. 채팅 창에서 서비스로 데이터를 보낼 수 없습니다. 그래서 나는 회신하여 친구들에게 채팅 메시지를 보낼 수 있습니다. 나는 예제를 들여다 보았지만 아무도 내가 원하는 것을 정확히 가지고 있지 않다. 서비스가 어떤 활동에도 구속력이 없기 때문에 onbind 메서드를 사용할 수 없지만 많은 활동이 데이터를 서비스에 보낼 수 있다는 것을주의하십시오. 논리적 인 설명이 좋습니다. 어떤 사람이 정확히 어떤 코드 샘플을 알고 있다면 위대 할 것입니다. 또한 xmpp 연결이 채팅 메시지를받을 때 서비스에서 채팅 창을 업데이트해야합니다. 사전android는 서비스 활동 간 데이터 교환

답변

0

서비스에서 onStart 메서드를 재정의해야합니다. 시작 방법을 사용하면 활동 의도를 얻을 수 있습니다. 액티비티에서 서비스로 ArrayList를 전달하려면 arraylist를 배열로 변환하면됩니다.

에서는 활동이

public void onStart(Intent intent, int startid){ 
    super.onStart(intent, startid); 
    Bundle b=intent.getExtras(); 
    String[] Array = b.getStringArray("Array"); 
} 
+0

안녕하세요, 귀하의 회신에 감사드립니다. 활동은 이미 android boot에서 시작되어 계속 실행됩니다. 어떤 채팅 창 활동이이 의도를 보낼 때마다 언제나이 시작 방법이 매번 호출됩니까? 또한 여러 채팅 창이 한 번에있을 예정이므로 온 스타트 메소드가 활동 라이프 사이클에서 호출 될 때 약간 불분명합니다. – navraj

0

에서

덕분에 당신은 서비스에 브로드 캐스트 리시버를 정의하고 sendBroadcast 활동의 번호로 메시지, 또한 당신은 서비스에 의해 전송 된 메시지를들을 될 수있는, 활동에 방송 수신기를 정의 할 수 있습니다.

+0

확인 서비스에

Intent intent=new Intent(ActivityName.this,Service.class); Bundle b=new Bundle() b.putStringArray("Array", your_array) intent.putExtras(b); startService(intent); 

. 나는 그런 식으로 해결했고 해결되었습니다. 감사합니다. – navraj