1、服務端的自定義對象 和 用戶端自定義對象保持一緻。”要内容一字不差 ,包名都要一樣“
最好的做法是直接拷貝過去
2、在使用BinderPool伺服器處理傳遞過來的資料的位置
舉例:
public class BookManagerImpl extends IBookManager.Stub {
private final static String TAG = BookManagerImpl.class.getSimpleName();
private List<Book> mSaveBooks = new ArrayList<>();
public BookManagerImpl() {
Log.d(TAG," 我被執行個體化了.....(bookManager)......... ");
}
@Override
public List<Book> getBooks() throws RemoteException {
StringBuilder sb = new StringBuilder();
for(Book book:mSaveBooks){
sb.append(book.toString()+"\n");
}
Log.d(TAG,"getBooks() " + sb.toString());
Log.d(TAG,"getBooks() " + sb.toString());
Log.d(TAG,"getBooks() " + sb.toString());
return mSaveBooks;
}
@Override
public void addBook(Book book) throws RemoteException {
Log.d(TAG, "addBook() " + book.toString());
mSaveBooks.add(book);
}
}
我加Log的地方就是處理的地方,這樣這個類伺服器和用戶端就可以不一樣了,在我的Demo裡面如果改了伺服器然後重裝app第一次點選用戶端會挂的,關掉重開用戶端就可以了。
附上Demo位址:
http://download.csdn.net/download/qq_36141543/10184724
就這樣吧,demo比較詳細