У меня есть служба B, которая отправляет определенное количество сообщений через фиксированный интервал.эта служба вызывается из другой службы A. код, используемый в службе A, равен
@Override
public void onStart (Intent intent,int startid)
{
Toast.makeText(this, "Service A Running onStart", Toast.LENGTH_LONG).show();
Thread MessagesThread = new Thread(new Runnable()
{
public void run()
{
ApplicationPreferences AppPrefs = new ApplicationPreferences(getApplicationContext());
int NumberOfMessagesToSend = Integer.parseInt(AppPrefs.getNumberOfMessagesToSend());
int NumberOfSentMessages;
for (NumberOfSentMessages = 0 ; NumberOfSentMessages < NumberOfMessagesToSend; NumberOfSentMessages++ )
{startServiceB();
}
}
});
MessagesThread.start();
}
public void startServiceB()
{
final Intent sendingMessages = new Intent(this, ServiceB.class);
startService(sendingMessages);
}
, тосты должны отслеживать, что происходит. Код службы B следующий:
@Override
public void onStart(Intent intent, int startId)
{
super.onStart(intent, startId);
Toast.makeText(getApplicationContext(), "Service B at start ", Toast.LENGTH_LONG).show();
new CountDownTimer(30000,1000)
{
public void onTick (long millisUntilFinished) {}
public void onFinish()
{
showToast();
}
}.start();
}
функция showToast () выглядит следующим образом:
public void showToast()
{
Toast.makeText(getApplicationContext(), "Service B in timer", Toast.LENGTH_LONG).show();
}
Как я уже говорил, я использую тосты, чтобы отслеживать происходящее.проблема заключается в том, что при запуске я получаю первый тост (служба B при запуске) 10 раз, а затем второй (служба B по таймеру) 10 раз, следовательно, между ними нет времени.
как мнезаставлять каждый из этих тостов появляться каждые 30 секунд?