- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] AIDL Custom Object 전달 본문
내가 만든 객체를 IPC를 통해 전달하려면 Parcelable Interface 를 implement 해야한다.
내가 만든 클래스가
class ProcessPrivacyInfo {
String processName;
byte accessInfo;
}
라고 한다면 수정된 클래스는 Parcelable의 두가지 메소드 와 한가지 필드
int describeContents()
void writeToParcel(Parcel dest, int flags)
public static final Parcelable.Creator CREATOR 를 선언해야 한다.
수정하면 아래와 같다.
import android.os.Parcel;
import android.os.Parcelable;
class ProcessPrivacyInfo implements Parcelable {
String processName;
byte accessInfo;
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public ProcessPrivacyInfo createFromParcel(Parcel in) {
return new ProcessPrivacyInfo(in);
}
public ProcessPrivacyInfo[] newArray( int size ) {
return new ProcessPrivacyInfo[size];
}
};
public ProcessPrivacyInfo(Parcel in) {
processName = in.readString();
accessInfo = in.readByte();
// TODO Auto-generated method stub
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(processName);
dest.writeByte(accessInfo);
}
이렇게 클래스를 수정한 후 같은 폴더 내에 같은 파일명의 aidl 파일을 만들고 해당 객체가 Parcelable 이라고 선언해준다.
만약 이걸 안만들고 그냥 import 할 경우 컴파일시 import문에서 해당 클래스를 찾을수없다고 에러가 뜬다.
<ProcessPrivacyInfo.aidl>
package android.app;
Parcelable ProcessPrivacyInfo;
그리고 마지막으로 해당 객체를 사용할 aidl 파일에 객체를 import 해준다.
<IPrivacyManager.aidl>
package android.app;
import android.app.ProcessPrivacyInfo;
interface IPrivacyManager{
List<ProcessPrivacyInfo> getProcessList();
...
}
[출처] http://nasabong.tistory.com/entry/aidl-Custom-Object-%EC%A0%84%EB%8B%AC
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] 리모트 서비스 만들기 #1. with AIDL (0) | 2013.04.22 |
---|---|
[안드로이드] Parcelable을 사용한 오브젝트 전달 (Object serialization using Parcelable) (0) | 2013.04.22 |
[안드로이드] Service StartService와 BindService (0) | 2013.04.22 |
[안드로이드] AIDL을 이용한 외부프로세스간 통신 (4) | 2013.04.19 |
[안드로이드] Android Service 및 AIDL (0) | 2013.04.19 |