2017-01-29 3 views
0

Я много искал, но не нашел ответа. Я разработал приложение для Android, где на первом же ленте будет показан экран приветствия, сделанный из viewpager. Проблема в том, что я не знаю, какое место лучше всего разместить в моем приложении.Где разместить код активности

Самый простой способ это может быть, что в основной деятельности на очень кулака линии еще до super.onCreate(), внутри метода OnCreate, где я стараюсь, чтобы получить общее значение предпочтения, а затем оценить, является ли это кулак обед , Если это так, я начинаю активную деятельность, как показано ниже:

public class MainActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
     boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true); 
     if (welcome) { 
      // go and start welcoming activity 
      Intent intent = new Intent(this, WelcomeSlideActivity.class); 
      startActivity(intent); 
     } 


     super.onCreate(); 
    } 
} 

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

public class App extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 

     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
     boolean welcome = sharedPreferences.getBoolean(getString(R.string.key_welcome), true); 
     if (welcome) { 
      // go and start welcoming activity 
      Intent intent = new Intent(this, WelcomeSlideActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
     } 
    } 
} 

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

+0

Вы хотите показать WelcomeSlideActivity только один раз после того, как пользователь впервые запустил ваше приложение? – Yupi

+0

Да, я хочу сделать это, но наилучшим образом, как это делают профессиональные приложения. – xFighter

+0

Я использовал этот раз, чтобы показать всплывающее диалоговое окно в моем приложении с помощью «SharedPreferences» с помощью простого 'if'checking и все еще отлично работает. Конечно, если пользователь снова закроет диалоговое окно приветствия приложения, оно снова появится. – Yupi

ответ

2

Посмотрите, как правильно создать заставки. https://www.bignerdranch.com/blog/splash-screens-the-right-way/

Что касается использования класса Application - это в первую очередь используется для конфигурации приложения в целом для поддержания состояния глобального приложения. Следовательно, начало деятельности отсюда не имеет большого смысла, поскольку его цель превратилась в становление точки входа в приложение, а не предоставление состояния для приложения в целом.

Кроме того, почему бы не сделать WelcomeSlideActivity первой деятельностью «пусковая установка»? Затем вы можете создать логику запуска следующего действия без истории или показать текущее представление.

В идеале вы должны создать активность заставки, которая определяет, показывать ли WelcomeSlideActivity или MainActivity. Преимущество этого заключается в том, что, хотя приложение определяет, какой из действий запускается, пользователю предоставляется заставка, которая информирует пользователя о запуске приложения

+0

Предположим, что я сделал это welcomeSlideActivity как активность запуска. В первый раз активность покажет приветливые вещи, но затем на каждом запуске будет казаться, что он вообще ничего не делает, просто заставляя пользователя к очередному действию, теряющему память или замедляющему производительность. Так что ты думаешь? – xFighter

+0

@xFighter Если вы решите разработать скользящий экран приветствия и не унывайте, показывая его каждый обед, стандартное поведение должно показать его только для первого обеда. Это не сложно реализовать, поскольку все, что вам нужно сделать, это поддерживать флаг в SharedPreference. – fluffyBatman

+0

@blackpanther ссылка, которую вы дали, я нашел ее полезной, но я могу сделать то же самое без каких-либо действий вообще. Мне просто нужна тема и некоторая конфигурация в манифестах и ​​в основном действии с помощью следующего кода setTheme (R.style.SplashAppTheme); – xFighter

Смежные вопросы