说明:
我有一个由我的同事开发的Android应用程序。
我需要切断应用程序以使逻辑/编程部分作为Web服务驻留在服务器上,并使剩余部分作为客户端驻留在Android设备上。
问题:
正如您在下面的代码中所看到的,使用了Observer / Observable系统。
1)首先,我需要了解,如果Observer / Observable系统仅用于在Observer(Activity)和Observable之间建立通信。
2)如果是这样,我应该将Manager的程序代码放入Web服务,并使用HTTP GET,POST协议与Activity通信。
3)或者我误解了一切?
public class MainActivity extends Activity implements Observer {
@Override
public void onCreate(Bundle savedInstanceState) {
view = new MainView(this);
ASensor aSensor;
aSensor = new ASensor(MainActivity.this);
aSensor.setListener(new Listener() {
@Override
public void onObjectDiscovered(List<AnObject> params) {
List<AnObject> myParams = new ArrayList<AnObject>();
TheManager.INSTANCE.feed(myParams);
}
});
}
@Override
public void update(Observable observable, Object data) {
if (observable instanceof TheManager) {
List<AnObject> objectList = (List<AnObject>) data;
String retValue = someProcessingMethod(objectList);
view.setRetValue(retValue);
}
}
}
public class TheManager extends Observable implements Serializable {
public static final TheManager INSTANCE = new TheManager();
public void feed(List<AnObject> params) {
List<AnObject> objectList = processParams(params);
notifyObservers(objectList);
}
}
答案 0 :(得分:1)
在Google I / O 2010中,Virgil Dobjanschi发表了演讲Android REST Client Applications Design Pattern,解决了使用SyncAdapter保持本地数据与远程数据库一致的问题。
如果您选择使用ContentProvider存储数据并通过SyncAdapter进行同步,则可能会找到detailed description at Google Developers如何: