обработчик или таймер android

я пытаюсь отображать сообщение каждые 1 минуту!! без остановки! Я нашел пример, который отображает сообщение только один раз после фиксированной задержки! помогите как настроить?? или если лучше использовать таймер, как он работает, мне нужен пример!!

public class TimertestActivity extends Activity {
    /** Called when the activity is first created. */

      @Override   
      public void onCreate(Bundle icicle) {   
        super.onCreate(icicle);   
        setContentView(R.layout.main);  
        Handler handler = new Handler();
        handler.postDelayed(
            new Runnable() {
                public void run() {
                    afficher();
                }
            }, 1000L);

      }   

      public void afficher()
      {
          Toast.makeText(getBaseContext(),
                     "test",
                     Toast.LENGTH_SHORT).show();
      }
}

Спасибо!


person manita marwa    schedule 30.12.2011    source источник
comment
Если вы нашли решение, которое работает для вас, пожалуйста, примите ответ.   -  person Siddharth Lele    schedule 30.12.2011


Ответы (2)


Попробуйте этот код -

public class TimertestActivity extends Activity {
    Handler handler = new Handler();
    Runnable runnable = new Runnable() {
        public void run() {
            afficher();
        }
    };

    /** Called when the activity is first created. */

      @Override   
      public void onCreate(Bundle icicle) {   
        super.onCreate(icicle);   
        setContentView(R.layout.main);  
        runnable.run();
      }   

      public void afficher()
      {
          Toast.makeText(getBaseContext(),
                     "test",
                     Toast.LENGTH_SHORT).show();
          handler.postDelayed(runnable, 1000);
      }
}
person anujprashar    schedule 30.12.2011
comment
Отлично, что вам помогает. Пожалуйста, также примите ответ, если это поможет. - person anujprashar; 30.12.2011
comment
готово, но мне просто нужна ваша помощь, я хочу вызвать другую функцию, которая вставляет значения в базу данных, если я запускаю функцию в одиночку, она работает, но в то время, когда она не работает, можете ли вы помочь мне, пожалуйста? - person manita marwa; 30.12.2011
comment
решено, спасибо, что я имел в виду, это выполнить 2 функции, а не только afficher () !! поэтому я просто вызвал вторую функцию! Спасибо, в любом случае :) - person manita marwa; 31.12.2011

Вы можете использовать для этого TimerTask. Но когда ваше устройство переходит в спящий режим, оно не будет работать, поэтому я думаю, что вы можете использовать для этого AlarmManager. В любом случае перейдите по этой ссылке для TimerTask ,

Код AlarmManager,

AlarmManager am = (AlarmManager) Context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime(), interval, pendingIntent);
person Ramindu Weeraman    schedule 30.12.2011
comment
Но в диспетчере тревог вы не можете показывать всплывающее сообщение. Оно покажет новую активность, но это вам поможет. - person Ramindu Weeraman; 30.12.2011