Хочу сделать так, чтобы при запуске приложения появлялась заставка, и через несколько секунд заставка пропадала и появлялось главное меню.
Вот как я все придумал реализовать: При запуске приложения запускаем AsyncTask, и в нем я ставлю таймер на пять секунд, после того как они истекли, переходит на главную Activity, и во время этих пяти секунд висит заставка.
Как сделать так, чтобы пользователь не мог снова вернутся на заставку при нажатии кнопки BACK?
Ответ
Реализация с корректной обработкой нажатия кнопки Назад :
SplashActivity:
public class SplashActivity extends Activity {
private static int SPLASH_TIME_OUT = 2000; // 2 seconds
private Handler mHandler;
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
startMainActivity();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mHandler = new Handler();
}
@Override
protected void onResume() {
super.onResume();
mHandler.postDelayed(mRunnable, SPLASH_TIME_OUT);
}
@Override
public void onBackPressed() {
super.onBackPressed();
removeCallbacks();
}
@Override
protected void onStop() {
super.onStop();
removeCallbacks();
}
private void removeCallbacks() {
if (mHandler != null) {
mHandler.removeCallbacks(mRunnable);
}
}
private void startMainActivity() {
startActivity(new Intent(this, MainActivity.class));
finish();
}
}
AndroidManifest.xml:
Комментариев нет:
Отправить комментарий