在本课中,您将向应用程序添加同步功能。
在 HomeScreen 构造函数中,添加 [同步] 菜单项。
// Add a menu item addMenuItem(_addToListMenuItem); // Add sync menu item addMenuItem(_syncMenuItem); // Create database and connect try{ ... |
在类变量声明中定义菜单项。
private MenuItem _addToListMenuItem = new MenuItem("Add", 1, 1){ public void run() { onAddToList(); } }; private MenuItem _syncMenuItem = new MenuItem("Sync", 2, 1){ public void run() { onSync(); } }; |
创建 onSync 方法。
private void onSync(){ try{ if( _da.sync() ){ _statusLabel.setText("Synchronization succeeded"); } else { _statusLabel.setText("Synchronization failed"); } this.refreshNameList(); } catch ( Exception ex){ Dialog.alert( ex.toString() ); } } |
在 DataAccess 类中,定义 syncParms 和 streamParms 变量。
private static SyncParms _syncParms; private static StreamHTTPParms _streamParms; |
在 DataAccess 类中,添加 sync 方法。
public boolean sync() { try { if(_syncParms == null){ String host = "relayserver.sybase.com/ias_relay_server/client/rs_client.dll/tomslee.HelloBlackBerry"; _syncParms = _conn.createSyncParms( "mluser", "HelloBlackBerrySyncModel" ); _syncParms.setPassword("mlpassword"); _streamParms = _syncParms.getStreamParms(); _streamParms.setPort( 8081 ); // use your own _streamParms.setHost( host ); // use your own if(host != null && _host.equals("relayserver.sybase.com/ias_relay_server/client/rs_client.dll/tomslee.HelloBlackBerry")) { _streamParms.setURLSuffix("/ias_relay_server/client/rs_client.dll/tomslee.HelloBlackBerry"); } } public boolean complete() { try{ _conn.checkpoint(); _conn.release(); _conn = null; _da = null; return true; } catch(Exception e){ return false; } } |
同步参数对象 SyncParms 包括部署同步模型时指定的用户名和口令。也包括所创建的同步模型的名称。现在,在 MobiLink 中,此名称是指部署到统一数据库的同步版本或一组同步逻辑。
流参数对象 StreamHTTPParms 表示 MobiLink 服务器的主机名和端口号。在下一课中启动 MobiLink 服务器时,使用您自己的计算机名进行模拟器测试并选择可用的端口。不要使用 localhost 作为计算机名。如果计算机上没有运行 Web 服务器,则您可以使用端口 80。
使用实际设备时,请使用外部可看到的计算机,或通过与您的设备配对的 BlackBerry Enterprise Server 可以访问的计算机,如 Sybase 托管的中继服务器。有关中继服务器的详细信息,请参见中继服务器简介。
编译应用程序。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |