Я работаю над очередью потоков. Моя цель - не перекрывать более одного тоста одновременно. Пример Тосты вызова в состояниях onCreate, onStart, onResume.
Сначала я создаю класс для помощника тоста, который имеет очередь тоста с контекстом активности. Эта очередь выполняет поток, пока в очереди нет элементов, но этот код не работает. Но я не знаю, тост, как сделать, чтобы ждать тост? если я использую Thread.Sleep (4000), то основной пользовательский интерфейс зависает
public static void CreateToast(final ToastSettings toastSettings) {
_toastQueue.add(toastSettings);
if (_toastQueue.size() == 1) {
new Handler().post(new Runnable() {
@Override
public void run() {
while (_toastQueue.size() != 0) {
Toast.makeText(_toastQueue.get(0).getContext(), _toastQueue.get(0).getMessage(), _toastQueue.get(0).isLong() ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show();
_toastQueue.remove(_toastQueue.get(0));
//thread sleep 4sec ??
}
}
});
}
}