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

Я пытаюсь отображать сообщение каждые 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();
      }
}

Спасибо!

Ответ 1

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

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);
      }
}

Ответ 2

// Timer using Handler

private final int SPLASH_TIME = 3000;

// Handling splash timer.
private void startSplashTimer() {
    new Handler().postDelayed(
    new Runnable() {
    @Override
    public void run() {
        startActivity(new Intent(SplashScreen.this,MainActivity.class));
    }
}, SPLASH_TIME);

}

Ответ 3

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

Код AlarmManager,

AlarmManager am = (AlarmManager) Context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime(), interval, pendingIntent);