Euler Проекта имеет много интересных проблем математики, которые могли предоставить большой материал начинающему программисту для получения первый опыт в. Проблемы начинаются легкий и увеличение трудности, и сеть полна демонстрационных решений на различных языках программирования .
Если №1 означает то, что я думаю, я бы использовал это - пусть служба перехватит исключение и вызовет метод для определенного AIDL объекта обратного вызова, созданного и предоставленного действием. .
Вы можете увидеть пример этой техники в проекте клиента и службы из одной из моих книг.
It looks like we can throw custom exceptions derived from RemoteException. So you can have XMPPRemoteException, or just a generic MyRemoteException that will hold the original exception. Below is a demo for the second case:
Server:
try {
...
}
catch(XMPPException e) {
throw new MyRemoteException(e);
}
Client:
try {
service.someCall();
}
catch(MyRemoteException e) {
rethrow(e);
}
Helper method:
private void rethrow(MyRemoteException e) throws Exception {
if(e.innerException instanceof XMPPException)
throw (XMPPException)e.innerException;
else
throw e.innerException;
}
Exception:
public class MyRemoteException extends RemoteException {
private static final long serialVersionUID = 1L;
public Exception innerException;
public MyRemoteException() {}
public MyRemoteException(Exception innerException) {
this.innerException = innerException;
}
}