Java me J2ME(LWUIT)-中断来自服务器的响应

Java me J2ME(LWUIT)-中断来自服务器的响应,java-me,lwuit,Java Me,Lwuit,我已经用J2ME(LWUIT)开发了一个移动应用程序,在服务器端完成更新后,我必须在收到服务器的响应后更新我的移动RMS中的值,在这种情况下,当我点击呼叫结束按钮-点击服务器后,在收到响应之前,手机中的红色按钮会关闭移动应用程序并更新服务器端值,但手机RMS值尚未更新。请告诉我是否有人对此有想法。红色按钮通常会杀死应用程序立即启动,并不会真正给您留下修复的机会。您可能需要回调服务器才能真正提交那里的数据。@arun您可以做的是 1) 更新服务器上的更改 2) 将要推送到RMS的数据与唯一ID一起

我已经用J2ME(LWUIT)开发了一个移动应用程序,在服务器端完成更新后,我必须在收到服务器的响应后更新我的移动RMS中的值,在这种情况下,当我点击呼叫结束按钮-点击服务器后,在收到响应之前,手机中的红色按钮会关闭移动应用程序并更新服务器端值,但手机RMS值尚未更新。请告诉我是否有人对此有想法。

红色按钮通常会杀死应用程序立即启动,并不会真正给您留下修复的机会。您可能需要回调服务器才能真正提交那里的数据。

@arun您可以做的是

1) 更新服务器上的更改

2) 将要推送到RMS的数据与唯一ID一起发送到MIDlet。唯一id唯一地标识每个事务

3) 此时,服务器一直在等待MIDlet确认MIDlet是否已收到数据(假设它等待20秒)

4) 一旦MIDlet接收到数据,它会将其存储在内存中,并立即向服务器发送确认信息以及接收到的uniqueID(并等待..比如说.25秒)。MIDlet还存储服务器发送具有特定唯一id的数据的次数计数。因此,该计数最初为0,每次服务器发送具有相同唯一id的数据时都会递增

5) 如果服务器在20秒内收到确认,则不会执行任何操作。25秒后,MIDlet将数据写入RMS。你的工作完成了

5.1)如果服务器没有收到确认,它将再次发送具有相同唯一id的数据(在第21秒)。MIDlet识别唯一id并递增计数器,该计数器跟踪服务器发送相同数据的次数。它再次发送确认并等待25秒

现在…这个过程可以继续下去

你需要做的是…决定你什么时候决定放弃这个过程

6) 最后,如果服务器没有收到确认,它将回滚更改并向MIDlet发送消息“回滚唯一id so的数据”

7) 如果midlet没有提交该唯一id的数据,它将忽略消息以及与该唯一id相关的更改。如果已经提交,则只回滚该唯一id的数据。如果对同一唯一id重复回滚请求,则忽略并向服务器发送一条消息,说明已回滚更改

8) 注意:您需要向服务器发送消息,说明对RMS的更改已回滚,否则服务器将继续发送消息以回滚更改

是的,这很复杂。看看这本书。通信网络或类似的东西,作者贝鲁兹·福鲁赞(Behrouz Forouzan)。他解释了这个故事