2016-01-05 3 views
0

Это моя первая попытка разработки в java/android.Остановка между методами

Я создал приложение, которое читает из базы данных (MySQL), оно извлекает запись и основывается на значениях в записи и отправляет 4 SMS на второе устройство.

После того, как он отправил SMS-сообщения, он обновляет базу данных вторым устройством, которое запускает одно и то же приложение, подключается к базе данных и делает то же самое, снова обновляя базу данных.

Добавить 10 устройств в микс, все соединения с базой данных, извлечение значений и отправку сообщений.

Когда последнее устройство подключается, оно обновляет запись первого устройства, и поэтому, когда первое устройство подключается снова, оно видит, что последнее устройство отправило его сообщения, а затем отправляет другую партию сообщений, перед очисткой базы данных и сбросом значений в базе данных.

Моя первая проблема заключается в том, что у меня есть одно действие, которое возвращает номер устройства через код USSD, который по завершении вызывает метод для чтения данных, чтобы он мог начать отправку, однако у меня нет способа сообщая устройству подключаться к базе данных с интервалами, то есть если устройство 1 не завершило отправку сообщений, подключится два устройства, убедитесь, что они еще не отправлены, а затем просто остаются в этом состоянии. Мне нужно, чтобы устройство подключалось с интервалами без вмешательства пользователя.

Возможно ли это?

Если я выхожу из приложения на устройстве и перезапускаю его, он подключается, видит, что его запись была обновлена, и выполняет следующую партию отправки.

ответ

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); 
+0

Спасибо Фелипе, это, кажется, решить это для меня. – Freddie

+0

без проблем! Я надеюсь, что это помогает! –

0

Вы могли бы добавить что-то до конца (или начала) последнего сообщения, который говорит, второе устройство это последнее сообщение ,

EX: устройство 1: добавить "%" в начале последнего текста

устройство 2:

if(msg.CharAt(0)=='%') 
{ 
//this is the last message 
// do task 
{ 

Другой вариант я вижу, что так как вы обновив база данных. Вы можете опросить базу данных на втором устройстве и только начать отправку сообщений после завершения предыдущего устройства.

что-то вроде:

while(!device1Finished) 
{ 
} 
sendMessages(); 
Смежные вопросы