Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » UltraLiteJ » 使用 UltraLiteJ » 教程:构建 BlackBerry 应用程序 » 第 2 部分:向 BlackBerry 应用程序添加同步

 

第 3 课:向应用程序添加同步

在本课中,您将向应用程序添加同步功能。

  1. 在 HomeScreen 构造函数中,添加 [同步] 菜单项。

    // Add a menu item
    addMenuItem(_addToListMenuItem);
            
    // Add sync menu item
    addMenuItem(_syncMenuItem);        
                   
    // Create database and connect
    try{ ...
  2. 在类变量声明中定义菜单项。

    private MenuItem _addToListMenuItem = new MenuItem("Add", 1, 1){
            public void run() {
                onAddToList();
            }
    };
    private MenuItem _syncMenuItem = new MenuItem("Sync", 2, 1){
            public void run() {
                onSync();
            }
    };
  3. 创建 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() );
        }
    }
  4. 在类级别中定义 syncParms 和 streamParms 变量。

    private static SyncParms _syncParms;
    private static StreamHTTPParms _streamParms;
  5. 在 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。

  6. 编译应用程序。