Страницы

Поиск по вопросам

четверг, 28 марта 2019 г.

Как не вернуться обратно на заставку?

Хочу сделать так, чтобы при запуске приложения появлялась заставка, и через несколько секунд заставка пропадала и появлялось главное меню.
Вот как я все придумал реализовать: При запуске приложения запускаем 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:

Комментариев нет:

Отправить комментарий