在本课中,您将向应用程序添加同步功能。
在 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){ System.out.println( ex.toString() ); } } |
在类级别中定义 syncParms 和 streamParms 变量。
private static SyncParms _syncParms; private static StreamHTTPParms _streamParms; |
在 DataAccess 类中,添加 sync 方法。
public boolean sync() { try { if( _syncParms == null ){ String host = "ultralitej.sybase.com"; _syncParms = _conn.createSyncParms( "mluser", "HelloBlackBerrySyncModel" ); _syncParms.setPassword("mlpassword"); _streamParms = _syncParms.getStreamParms(); _streamParms.setPort( 80 ); // use your own _streamParms.setHost( host ); // use your own if(host.equals("ultralitej.sybase.com")) { _streamParms.setURLSuffix("scripts/iaredirect.dll/ml/HelloBlackBerry/"); } } System.out.println( "Synchronizing" ); _conn.synchronize( _syncParms ); return true; } catch( ULjException uex){ System.out.println(uex.toString()); return false; } } |
同步参数对象 SyncParms 包括部署同步模型时指定的用户名和口令。也包括所创建的同步模型的名称。现在,在 MobiLink 中,此名称是指部署到统一数据库的同步版本或一组同步逻辑。
流参数对象 StreamHTTPParms 表示 MobiLink 服务器的主机名和端口号。在下一课中启动 MobiLink 服务器时,使用您自己的计算机名并选择可用的端口。不要使用 localhost 作为计算机名。如果计算机上没有运行 Web 服务器,则您可以使用端口 80。
编译应用程序。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |