как отображать уведомления по одному? - PullRequest
0 голосов
/ 16 июля 2011

он, я новичок в платформе Android.

Сейчас я разрабатываю небольшое приложение на основе уведомлений.

В моем приложении я поддерживаю таймер, основанный на этом времени каждый раз, когдауведомление отображается.

Но проблема в том, что первое уведомление отображается и второе уведомление добавляется над первым уведомлением, третье уведомление добавляется над вторым уведомлением ..................

Я хочу отображать уведомления одно за другим.

, если кто-нибудь знает, как отобразить уведомление одно за другим. Пожалуйста, ответьте мне.

здесьмой код

myTimer = new Timer();
        myTimer.schedule(new TimerTask()
        {
        @Override
        public void run() 
        {

            TimerMethod();

        }

    }, 10000,10000);
}

private void TimerMethod()
{

    this.runOnUiThread(Timer_Tick);
}

private Runnable Timer_Tick = new Runnable()
{
    public void run()
     {


        mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        final Notification notifyDetails = new Notification(R.drawable.icon,"New Alert, Click Me!",System.currentTimeMillis());
        Context context = getApplicationContext();
        CharSequence contentTitle = "Notification Details...";
        CharSequence contentText = "you have a new notification find clicking me";
        Intent notifyIntent = new Intent(Notifi.this,Notifi.class);
        PendingIntent intent = 
            PendingIntent.getActivity(Notifi.this, 0, 
            notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
            notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent);
            mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);






    }


};    

Заранее спасибо

1 Ответ

1 голос
/ 16 июля 2011

Сохраните фиксированное количество времени, скажем, 5000 мс, в переменной.

Теперь запустите 1-е уведомление и получите текущее системное время.К этому добавьте 5000 мс и продолжайте обработку.В конце 5000 мс закройте уведомление.Если второе уведомление должно отображаться в течение 5 секунд после первого, используйте оператор условия if и проверьте, не прошло ли 5000 мс с момента начала первого уведомления.Если оно прошло, отобразите 2-е, иначе дождитесь завершения 1-го.

Вы также можете просто проверить, открыто ли какое-либо уведомление, используя простой флаг, который будет установлен в 1, когда уведомление начинается, и в 0, когда оно закрывается.Если это 0, новое уведомление может отображаться.

[Вы также можете использовать 2 потока для этого.На 1-м потоке запускаются все процессы.Второй просто прерывает первый через определенные промежутки времени после запуска.Но не пробовал это]

Надеюсь, я смог вам помочь.

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