Не отображать заставку, когда приложение открыто один раз и хранится в памяти - PullRequest
0 голосов
/ 02 июля 2019

Я хочу, чтобы заставка появлялась, когда пользователь запускает мое приложение (как обычно), но поскольку я буду использовать анимированный заставку, я не хочу беспокоить пользователя одной и той же анимацией каждый раз, когда он открывает приложение, поэтому ему нужно подождать 3 секунд до окончания анимации.

Так ..

Как сделать так, чтобы приложение не отображало заставку, если пользователь уже открыл приложение, и приложение должно проверять, открывалось ли оно в кэшированном состоянии, а затем вызывать снова, чтобы оно не отображало заставку при вызове из кэшированная память.

Поскольку это означает, что он не уничтожается пользователем, поэтому пользователь может быстро переходить от одного приложения к другому.


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


Или я должен использовать onPause () в MainActivity и onDestroy () для достижения этой цели. И если да, то как я могу это сделать, как НЕ отображать заставку, когда у меня есть ее экземпляр?

1 Ответ

1 голос
/ 02 июля 2019

Создайте один класс диспетчера предпочтений для хранения логического значения, чтобы сохранить проверку заставки, запускается она или нет.

public class PrefManager { 
 private static final String KEY_IS_SPLASH_IN = "isSplashScreenIn";

  SharedPreferences pref;
    // Editor for Shared preferences
    Editor editor;
    // Context
    Context _context;
    // Shared pref mode
    int PRIVATE_MODE = 0;

    public PrefManager(Context context) {
        this._context = context;
        pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = pref.edit();
    }

 public boolean isSplashIn() {
        return pref.getBoolean(KEY_IS_SPLASH_IN, false);
    }

    public void setSplashIn(boolean setLogin) {
        editor.putBoolean(KEY_IS_SPLASH_IN, setLogin);
        editor.commit();
    }
}

Использование класса менеджера предпочтений на заставке

public class SplashActivity extends Activity{

    PrefManager pref;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        pref = new PrefManager(this);
                    if (pref.isSplashIn == false) {
                         //Splash Screen Load
                         pref.setSplashIn(true);
                    } else {
                         Intent registration = new Intent(ctx, Login.class);
                         startActivity(registration);
                    }
           }
    }

Спасибо, Счастливого Кодирования .....

...