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