一定の間隔でサーバーにメッセージを送信する BlackBerry アプリケーションがあります。メッセージは、利用可能な接続方法のいずれかを使用して Web サービス経由で送信されます。Wifi、BIS、TCP/IP など
メッセージは継続的に送信されるため、インターネットが利用できない場合に備えてメッセージをキューに入れ、インターネットが利用可能になったときにメッセージを送信するメカニズムが必要です。そのため、最初に送信メッセージを永続ストアに保存してから、永続ストアを読み取り、それをループして保留中のすべてのメッセージを送信したいと考えています。新しいメッセージはすべて、永続ストアの最後の場所に保存する必要があります。
「送信」をクリックすると、次の2つのメソッドが呼び出されます。
public static void saveMessage(String msg){
Hashtable hashtable=new Hashtable();
persistentObject = PersistentStore.getPersistentObject(KEY);
hashtable.put("MessageToSend", msg);
persistentObject.commit();
}
public static void sendMessage(String msg){
Hashtable hashtable=new Hashtable();
persistentObject = PersistentStore.getPersistentObject(KEY);
Vector msgVector = (Vector)persistentObject.getContents();
Enumeration eMsgs=msgVector.elements();;
/*synchronized(poObject )*/{
persistentObject.setContents(msgVector);
persistentObject.commit();
}
int i=0;
while(eMsgs.hasMoreElements()){
hashtable=(Hashtable)eMsgs.nextElement();
String encryptedMessage=(String)hashtable.get("MessageToSend");
if(!encryptedMessage.equals("")){
//check internet connection
String C0NNECTION_EXTENSION = checkInternetConnection();
if(C0NNECTION_EXTENSION==null)
{
Dialog.alert("Check internet connection and try again");
return;
}
else
{
MyScreen.PostMsgToServer(encryptedMessage);
hashtable.remove(encryptedMessage);
}
}
i++;
}
}
これは、私が遭遇したチュートリアル/例からの単なる試みです。親切に助けてください。