Почему уведомление приходит раньше времени?

private Runnable Timer = new Runnable() {
@Override
public void run() {

try {
Thread.sleep(1000);
} catch (Throwable t) {
}
};
};

На основе этого потока создал своеобразный таймер
while (LAST_MILLI_SEC != 0);{

new Thread(Timer).start();
String t = String.valueOf((LAST_MILLI_SEC/1000)-1);
Toast.makeText(this, t,Toast.LENGTH_LONG).show();//После каждой сек. сна выводит сообщение
LAST_MILLI_SEC = LAST_MILLI_SEC - 1000;//Потом отнимает 1 сек от оставшегося времени

if(LAST_MILLI_SEC/1000 == 0){
//Вот здесь таймер сначала должен отсчитать до нуля, а уже потом отправлять уведомление?????
Notification notification = new Notification();
Context context = getApplicationContext();
Intent notificationIntent = new Intent(context, MainActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(context, 0,
notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
long[] vibrate = new long[] {1000, 1000, 1000, 1000, 1000};
notificationIntent.putExtra("url", "dtrek.dp.ua");
Notification.Builder builder = new Notification.Builder(context)
.setContentTitle("Посмотрите замены")
.setTicker("Внимание!") // java.lang.System.currentTimeMillis()
.setContentIntent(pIntent)
.setDefaults(Notification.DEFAULT_SOUND).setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher);

NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(NOTIFY_ID, builder.build());

notification.vibrate = vibrate;
notification.flags = notification.flags | Notification.FLAG_INSISTENT; }
}
  • Вопрос задан
  • 2484 просмотра
Пригласить эксперта
Ответы на вопрос 1
itvdonsk
@itvdonsk
Android Developer
Оно приходит раньше какого времени?
//После каждой сек. сна выводит сообщение

Он выводит не после секунды сна, а после запуска потока. Который, кстати, ничего не делает, "спит" секунду и завершается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы