一定の間隔で特定の数のメッセージを送信するサービス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回取得し、次に2番目のトースト(タイマーのサービスB)を10回取得し、その間に時間がないことです。
このトーストのそれぞれを30秒に1回表示するにはどうすればよいですか?