original source : https://youtu.be/1P9eV0ExuZ0

image

=========================================================

.

.

image

obtainMessage()는 pool에 있는 이미 만들어진 남는 Message를 가져온다.

=========================================================

.

.

image

obj를 통해 Message에 데이터를 전달할수 있지만 간단한 정수만을 사용해도 되는 경우 arg1, arg2를 이용한다. 

=========================================================

.

.’

image

=========================================================

.

.

image

handler의 sendMessage()를 통해 Message가 queue에 올라 가게 된다.

=========================================================

.

.

image

=========================================================

.

.

image
image
image
image

=========================================================

.

.

image

post()를 통해 Message가 아닌 Runnable을 queue에 올려 놓을 수 있다.

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

handler가 아닌 위의 방법들로 main thread에 접근가능하다.

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

AsyncTask<>의 첫번째 arg는 doInBackgroun에 전달되는 arg이다. 

두번째 arg는 onProgressUpdate()에 사용되는 arg이다.

세번째 arg는 onPostExecute()에 사용되는 arg이다.

image

=========================================================

.

.

image
image
image
image

original source : https://youtu.be/qt-l0MIdhTM

image

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

ThreadPoolExecutor를 이용해서 ThreadPool을 만든다.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

=========================================================

.

.

What is the relationship between Looper, Handler and MessageQueue in Android?

What is the relationship between Looper, Handler and MessageQueue in Android?

A guide to the Android Wear Message API | Java

A guide to the Android Wear Message API | Java

  • wear에서 mobile로 전달할 data가 있는 경우 data item, 

    DataMapItem 또는 message, assets등등의 방법을 이용할수 있다. 쌍방의 통신이 필요한경우는 DataItem , DataMapItem을 이용하면되고 일방의 통신의 경우는 Message를 이용할수 있다. (RPC 처럼 사용 가능) 

  • Message를 사용하는 경우(DataItem,DataMapItem의 경우는 사용해보지 않아서 같은지 아직 모름) 일단 네트워크의 node를 확인해야한다. 그리고 가장 가까운 기기기 node(mobile인경우가 대부분)가 접속되었는지, 또 message작업이 가능한지 capability를 확인해야 한다. 그리고 나서 data는 byte[]의 형태로 MessageApi.sendMessage를 통해 전달된다. 그리고 message를 mobile에서 받는 경우 두가지 경우를 생각할수 있다. 
  1. 사용자가 app을 사용하고 있는 경우
  2. 사용자가 app을 사용하지 않고 있는 경우

첫번째 경우에만 통신이 필요한경우는  MessageApi.MessageListener를 inplements 한 activity가 받아들이면된다. 후자의 경우는 service를 이용해서 받는다.