<데이터 송수신>
Intent 데이터 추출
- Uri uri = Intent.getData()
- Bundle bundle = Intent.getExtras()
Intent 데이터 전송
- [암시적] Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))
- [명시적] Intent intent = new Intent(this, ActivityB.class)
- intent.putExtra("query", "select * from data")
- startActivity(indent)
- startActivityForResult(indent, REQUEST_CODE)
Broadcast 데이터 전송
- sendBroadcast(intent)
- sendOrderedBroadcast(intent)
Thread 데이터 추출
- Message msg = handler.obtainMessage()
Bundle = msg.getData()
Thread 데이터 전송
- handler.sendMessage(msg)
<주요 내용>
Intent 속성
- 상호간 데이터 교환 및 알림 방법
- Action
- Flag
Provider
- 내부 DB 를 외부 프로세스와 공유
- android:authorities => 절대 URI 경로 (ex : org.cozyu.mydbapp.mydbprovider)
- android:name => 클래스 이름
- ContentResolver => 컨텐츠 처리, 컨텐츠 변경 감지
Service
- 백그라운드에서 돌아가는 객체
Activity
- 독립적인 역할을 하는 수행 객체
-------------------------------------------------
IBinder
Message
Bundle
Firebase
<Activity>
-
-
<Service>
started service
- 동기식
- 호출되면 호출한 프로세스의 메인 스레드에서 실행
- 주요함수 : startService(), stopService()
intent service
- 비동기식
- 새로운 쓰레드에서 실행
- 주요함수 : onHandleIntent()
bound service
- 동기식
- 상호작용 가능 (IBinder 객체 이용)
- 주요함수 : bindService(), unbindService(), onBind()
- [로컬바인딩] onServiceConnected, onServiceDisconnected()
- [원격바인딩] handleMessage(Message msg) - Handler 상속
- 로컬 프로세스(ex : :myprcoess 인경우 호출쪽이 죽으면 같이 죽음)
<Content Provider>
- 내부 DB 를 외부 프로세스와 공유
- 주요함수 : query(), insert(), update(), delete()
- URI 기반 조회 방법 : Content URI - org.cozyu.mydbapp.myprovider/product/3