这是我在java / android中开发的第一次尝试。
我创建了一个从数据库中读取的应用程序,(MySQL)它检索记录,并根据记录中的值将4条SMS发送到第二台设备。
发送SMS之后,它会更新数据库第二个运行相同应用程序的设备,连接到数据库,然后再次更新数据库。
添加10个设备,所有设备都连接到数据库,检索值和发送消息。
当最后一个设备连接时,它会更新第一个设备的记录,因此,当第一个设备再次连接时,它会看到最后一个设备发送了它的消息,然后再发送另一批消息,之后清除数据库,并清除数据库中的值。
我的第一个问题是,我有一个活动,通过USSD代码检索设备号,完成后调用一个方法来读取数据,以便它可以开始发送,但是,我无法告诉设备连接到数据库的时间间隔,即如果设备1没有完成发送消息,设备2将连接,看到它必须尚未发送,然后,只是保持在该状态。我需要设备间隔连接,无需任何用户干预。
这可能吗?
如果我退出设备上的应用程序并重新启动它,它会连接,看到它的记录已更新,并进行下一批发送。
答案 0 :(得分:0)
要定期运行方法,您可以执行以下操作:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Your code here
// run again after 10 s
handler.postDelayed(this, 10000);
}
}, 10000);
答案 1 :(得分:0)
您可以在最后一条消息的末尾(或开头)添加一些内容,告诉第二个设备它是最后一条消息。
EX: 设备1: 将“%”添加到最后一个文本的开头
设备2:
imagesLoaded
我看到的另一个选项是,因为您正在更新数据库。您可以在第二台设备上轮询数据库,只在前一台设备完成后才开始发送消息。
类似的东西:
if(msg.CharAt(0)=='%')
{
//this is the last message
// do task
{