обработчик или таймер Android - PullRequest
10 голосов
/ 30 декабря 2011

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

Спасибо!

Ответы [ 3 ]

24 голосов
/ 30 декабря 2011

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

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 голосов
/ 15 апреля 2017
// 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);

}

1 голос
/ 30 декабря 2011

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

Код AlarmManager,

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