このレッスンでは、アプリケーションに同期機能を追加します。
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 には、同期モデルの展開時に指定したユーザ名とパスワードが含まれています。また、作成した同期モデルの名前も含まれています。Mobile Link では、この名前は統合データベースに展開された同期バージョン (同期論理セット) を参照するようになります。
ストリーム・パラメータ・オブジェクト StreamHTTPParms は、Mobile Link サーバのホスト名とポート番号を示します。次のレッスンで Mobile Link サーバを起動するときに、自分のコンピュータ名を使用し、使用可能なポートを選択します。コンピュータ名として localhost は使用しないでください。自分のコンピュータで Web サーバを実行していないかぎり、ポート 80 を使用できます。
アプリケーションをコンパイルします。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |