我有一个 BlackBerry 应用程序,它以固定的时间间隔向服务器发送消息。使用任何可用的连接方法通过网络服务发送消息;Wifi、BIS、TCP/IP 等
由于消息是连续发送的,我需要一种机制来排队消息以防互联网不可用,并在互联网可用时发送消息。出于这个原因,我希望首先将任何传出消息保存在 Persistent Store 中,然后读取 Persistent Store 并循环通过它来发送所有待处理的消息。任何新消息都应保存在持久存储中的最后一个位置。
单击“发送”时,我正在调用以下两种方法:
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++;
}
}
这只是我遇到的教程/示例的尝试。请帮忙。