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

Я хотел бы сделать конкретный макет видимым во время запуска приложения, а не при запуске активности каждый раз, когда пользователь обращается к активности в приложении, может кто-нибудь сказать мне, как это сделать?

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

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

Пожалуйста, помогите, заранее спасибо.

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Я думаю, что простое решение - просто создать макет в том же макете (который вы используете с действием) (оба макета должны охватывать весь экран, вы можете добиться этого с помощью относительного макета) и установить в XML visibility = "Gone" для макета, который вы хотите показать в течение нескольких секунд, теперь, когда начинается действие, установите id.setVisibility = VIEW.VISIBLE для макета, который вы хотите показать на несколько секунд c, и установите обратный отсчет для 3/4 se c и по окончании обратного отсчета sh set id.setVisibility = VIEW.GONE ,, Вы должны использовать для этой цели Relative Layout, и другое решение - вы можете использовать экран spla sh, если ваша активность - Launcher Activity.

1 голос
/ 18 июня 2020

Используйте SharedPrefences, например:

public class MainActivity extends Activity {


    SharedPreferences sp;
    Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
     sp = getSharedPreferences("mypreference",
            Context.MODE_PRIVATE);
    editor = sp.edit();

  }

   @Override
    protected void onStart() {
    super.onStart();

    //we set default value to true because if it's not initialized yet, it is first time!
    if(sp.getBolean("key_first_time" , true)){

     //it's app first time start up
     ....
     //change status of shared preference to false
     editor.putBoolean("key_first_time" , false);
     editor.apply();
    }else{

     //it's not app first time start up

    }
}

@Override
protected void onDestroy() {
    super.onDestroy();

  //this method called when your activity is not in memory anymore

 //change status of shared preference to true
 editor.putBoolean("key_first_time" , true);
 editor.apply();
}

}

Обратите внимание, что при удалении активности из android памяти (фон) наше общее предпочтение изменится на true, другими словами, наш первый статус будет сброшен .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...