Android 编写 Service 入门
2010-04-09 06:15:00 来源:WEB开发网这里将前面的例子中返回的int数据改为复杂数据类型:
package com.easymorse;
import android.os.Parcel;
import android.os.Parcelable;
public class CountBean implements Parcelable {
public static final Parcelable.Creator
@Override
public CountBean createFromParcel(Parcel source) {
CountBean bean = new CountBean();
bean.count = source.readInt();
return bean;
}
@Override
public CountBean[] newArray(int size) {
return new CountBean[size];
}
};
public int count;
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.count);
}
@Override
public int describeContents() {
return 0;
}
}
然后,需要在相同包下建一个同名的aidl文件,用于android生成相应的辅助文件:
package com.easymorse;
parcelable CountBean;
这一步是android 1.5后的变化,无法通过adt生成aidl,也不能用一个比如全局的project.aidl文件,具体见:
http://www.anddev.org/viewtopic.php?p=20991
然后,需要在服务的aidl文件中修改如下:
package com.easymorse;
import com.easymorse.CountBean;
interface ICountService {
CountBean getCount();
}
其他的改动很小,只需将CountService和调用CountService的部分修改为使用CountBean即可。
更多精彩
赞助商链接