在方法之间暂停
Pausing between methods
这是我在 java/android 中的第一次开发尝试。
我创建了一个从数据库读取的应用程序,(MySQL) 它检索一条记录,并根据记录中的值向第二台设备发送 4 条短信。
发送 SMS 后,它会在第二台运行相同应用程序的设备上更新数据库,连接到数据库,然后执行相同的操作,再次更新数据库。
添加 10 台设备,全部连接到数据库、检索值和发送消息。
当最后一个设备连接时,它会更新第一个设备的记录,因此,当第一个设备再次连接时,它会看到最后一个设备已经发送了它的消息,然后发送另一批消息, 在清除数据库之前,清除数据库中的值。
我的第一个问题是,我有一个 activity 通过 USSD 代码检索设备号,完成后调用一个方法来读取数据,以便它可以开始发送,但是,我无法告诉设备每隔一段时间连接到数据库,即如果设备 1 尚未完成发送消息,设备二将连接,看到它必须尚未发送,然后保持该状态。我需要设备在没有任何用户干预的情况下每隔一段时间连接一次。
这可能吗?
如果我退出设备上的应用程序并重新启动它,它会连接,看到它的记录已更新,然后进行下一批发送。
周期性地运行一个方法,你可以这样做:
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:
在最后一个文本的开头添加“%”
设备 2:
if(msg.CharAt(0)=='%')
{
//this is the last message
// do task
{
我看到的另一个选项是,因为您正在更新数据库。您可以轮询第二个设备上的数据库,并且仅在前一个设备完成后才开始发送消息。
类似于:
while(!device1Finished)
{
}
sendMessages();
这是我在 java/android 中的第一次开发尝试。
我创建了一个从数据库读取的应用程序,(MySQL) 它检索一条记录,并根据记录中的值向第二台设备发送 4 条短信。
发送 SMS 后,它会在第二台运行相同应用程序的设备上更新数据库,连接到数据库,然后执行相同的操作,再次更新数据库。
添加 10 台设备,全部连接到数据库、检索值和发送消息。
当最后一个设备连接时,它会更新第一个设备的记录,因此,当第一个设备再次连接时,它会看到最后一个设备已经发送了它的消息,然后发送另一批消息, 在清除数据库之前,清除数据库中的值。
我的第一个问题是,我有一个 activity 通过 USSD 代码检索设备号,完成后调用一个方法来读取数据,以便它可以开始发送,但是,我无法告诉设备每隔一段时间连接到数据库,即如果设备 1 尚未完成发送消息,设备二将连接,看到它必须尚未发送,然后保持该状态。我需要设备在没有任何用户干预的情况下每隔一段时间连接一次。
这可能吗?
如果我退出设备上的应用程序并重新启动它,它会连接,看到它的记录已更新,然后进行下一批发送。
周期性地运行一个方法,你可以这样做:
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: 在最后一个文本的开头添加“%”
设备 2:
if(msg.CharAt(0)=='%')
{
//this is the last message
// do task
{
我看到的另一个选项是,因为您正在更新数据库。您可以轮询第二个设备上的数据库,并且仅在前一个设备完成后才开始发送消息。
类似于:
while(!device1Finished)
{
}
sendMessages();