2014-01-12 4 views
2

Я хочу проверить общие предпочтения перед запуском приложения. Я хочу проверить, является ли значение в общих предпочтениях истинным или ложным, и в зависимости от того, что хотите запустить Activity.If значение true, я хочу начать одно действие, если оно ложно, я хочу начать вторую активность. Посмотрите, прежде чем показывать первый экран моих приложений?Проверка sharedpreference перед запуском приложения

ответ

1

В методе onCreate сначала получите значение sharedpreference.

, если это правда, то установить вид контента, т.е.

if(sharedpreference_value == true) { 
    setContentView(R.layout.your_layout); 
} 

else { 
    finish(); 
} 
1

Вы можете сделать это в своем стартовом действии, принять ваше решение в onCreate и провести соответствующую деятельность.

6

я хочу, чтобы проверить общее предпочтение, прежде чем мое приложение начинает

По определению, это не представляется возможным. Если ваше приложение еще не запущено, ваш код не работает, поэтому ваш код не может проверить SharedPreferences.

Если значение истинно, я хочу запустить одно действие, если оно ложно. Я хочу начать вторую операцию. Как проверить его перед тем, как показывать первый экран моих приложений?

Имейте свою ручку деятельности в одном случае (например, true). В onCreate() отметьте SharedPreferences, и если значение false, вызовите startActivity(), чтобы запустить другое действие, затем finish(), чтобы избавиться от текущего (так как он больше не нужен).

Или у вас есть только одно действие, но два разных фрагмента, и загрузите правильный фрагмент на основе SharedPreferences.

+1

+1 для решения фрагмента. Это более элегантно, чем цепочки действий. –

+0

Я хочу, чтобы он показывал приложения ui – Mario

+0

@Mario: Тогда вы должны пойти с решением фрагмента. – CommonsWare

0

В вашем OnCreate) метод проверки (если значение в общем Preference верно ложных

SharedPreferences sharedPreferences= PreferenceManager.getDefaultSharedPreferences(getActivity()); 
boolean check = sharedPreferences.getBoolean("Check",false); 
Intent intent;  
if(check){ 
intent = new Intent(this, First.class); 
else 
intent = new Intent(this, Second.class); 
startActivity(intent); 
finish(); 

Но имейте в виду, что логическое значение check должно существовать в общих предпочтениях, иначе оно всегда будет возвращать false.

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