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

SQL Anywhere 12.0.0 (中文) » UltraLiteJ » 使用 UltraLiteJ » 教程:构建用于 BlackBerry 的 UltraLiteJ 应用程序 » 第 2 部分:使用 MobiLink 同步 UltraLiteJ 应用程序

 

第 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){
            Dialog.alert( ex.toString() );
        }
    }
  4. 在 DataAccess 类中,定义 syncParms 和 streamParms 变量。

    private static SyncParms _syncParms;
    private static StreamHTTPParms _streamParms;
  5. 在 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 托管的中继服务器。有关中继服务器的详细信息,请参见中继服务器简介

  6. 编译应用程序。