2014-01-17 2 views
0

Каков правильный способ запуска предпочтительной активности при запуске приложения?
Например, у меня есть 2 действия (1 - операция типа «Справка/тип входа», другая - основное действие), и я хочу разрешить пользователю определять, какая активность отображается при запуске.
Нужно ли использовать SharedPreferences?
Какие изменения должны быть внесены в манифест? Я неудачно нашел приличный пример онлайн.Задание активности запуска из настроек

ответ

0

Здесь возможное решение с SharedPreferences и с учетом этого приложения запускается в первый раз:

public class ThirdActivity extends Activity{ 
Intent myIntent; 

SharedPreferences useFirstActivity; 
SharedPreferences firstRun; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    useFirstActivity = getPreferences(MODE_PRIVATE); 
    firstRun = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE); 

if(useFirstActivity.getBoolean("useFirstActivity", true) || firstRun.getBoolean("firstrun", true)) { 
     myIntent = new Intent(this, FirstActivity.class); 
     firstRun.edit().putBoolean("firstrun", false).commit(); 
} 
else { 
     myIntent = new Intent(this, SecondActivity.class); 
} 
startActivity(myIntent); 
} 

}

Кроме того, зарегистрировать ThirdActivity в качестве основной активности в вашем файле манифеста:

 <activity 
     android:name="ThirdActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

Не забудьте зарегистрировать FirstActivity и Second Activity, а также в вашем манифесте!

<activity 
     android:name="FirstActivity" 
</activity> 
<activity 
     android:name="SecondActivity" 
</activity> 
+0

Я думал об этой идее, но, возможно, был лучший способ сделать это или что пользователь мог заметить третье действие. Это работает, и если нет лучшего решения, я приму свой ответ. Спасибо :) – itchy23

+1

Возможно, у вас должна быть функция Splash и выполнить эту проверку внутри Splash, чтобы вы не запускали основной. – Aiapaec

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