#android #timer
#Android #таймер
Вопрос:
В настоящее время я разрабатываю приложение, которому я хочу разрешить что-то делать (например, открывать действия) через определенное время, например, через пять секунд.
Какой код мне для этого нужен?
Комментарии:
1. Какой код у вас есть ?
2. Используйте таймер обратного отсчета.
3. Мне кажется, это вполне разумный вопрос. Тем более, что есть пара неправильных ответов! H8rs должен h8 … 😉
Ответ №1:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
rsong = MediaPlayer.create(Splash.this, R.raw.party);
rsong.start();
Thread timer = new Thread(){
public void run(){
try {
sleep(5000);
} catch (Exception e) {
e.printStackTrace();
} finally{
Intent i = new Intent("com.example.myapp.MENU");
startActivity(i);
}
}
};
timer.start();
}
Попробуйте это.
Здесь действие intent перенаправляет вас на новый макет, который вы хотите перенести.
Также вам нужно будет изменить «Androidmanfiest.xml «.
Действие намерения может быть выполнено несколькими различными способами.
Итак, сначала попробуйте это с помощью thread.
Комментарии:
1. В этом коде есть несколько сумасшедших ошибок. Если вы поворачиваете экран, пока действие видно, будет несколько потоков, запускающих intent, и вы потеряете память Activity
Ответ №2:
Вам нужен AlarmManager:
Intent i = new Intent(this, YourServiceOrBroadcastReceiver.class);
PendingIntent pi
= PendingIntent.getService(this, INTENT_ID, i,PendingIntent.FLAG_UPDATE_CURRENT);
((AlarmManager) getSystemService(Context.ALARM_SERVICE))
.setInexactRepeating(
AlarmManager.RTC,
System.currentTimeMillis() 100,
POLL_INTERVAL,
pi);
Ответ №3:
Вы можете использовать обработчик и создать другой поток с задержкой. Предположим, вы хотите запустить intent через 4 секунды, используйте это:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
Intent i = new Intent(Login.this, Home.class);
startActivity(i);
}
}, 4000);