Простой редактировать в файл AndroidManifest.xml
будет делать трюк:
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name">
<activity
android:name=".ActivityToStart"
android:label="@string/activity_helmet_remote_name"
android:theme="@style/themeLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".AlternateActivity1"
android:theme="@style/themeLight">
</activity>
<activity
android:name=".AlternateActivity2"
android:theme="@style/themeLight">
</activity>
</application>
Как вы можете видеть в приведенном выше примере, ActivityToStart
будет открываться при запуске приложения, поскольку она имеет android.intent.action.MAIN
этикетку. Просто переместите эту метку в действие, которое вы хотите запустить, когда приложение открывается. Если вы хотите AlternativeActivity1
начать при открытии приложения, то ваш файл AndroidManifest.xml
будет выглядеть следующим образом:
<application
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name">
<activity
android:name=".ActivityToStart"
android:label="@string/activity_helmet_remote_name"
android:theme="@style/themeLight">
</activity>
<activity
android:name=".AlternateActivity1"
android:theme="@style/themeLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".AlternateActivity2"
android:theme="@style/themeLight">
</activity>
</application>
Вы также хотите, чтобы убедиться, чтобы переместить LAUNCHER
линию ...
<category android:name="android.intent.category.LAUNCHER" />
в Activity
вы хотите начать с открытия приложения, так как это используется для регистрации по умолчанию Activity
с помощью программы запуска Android.
С другой стороны, если вы хотите запустить Activity
только один раз, SharedPreferences
- это путь. SharedPreferences
позволяют сохранять значения, которые могут быть доступны глобально в вашем приложении. Простым способом сделать это было бы создание простого Activty
, который вы запускаете каждый раз, который проверяет, следует ли начинать учебное пособие или начинать ваш основной Activity
.Что-то вроде следующего:
public class StartupActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
/** Create the Activity */
super.onCreate(savedInstanceState);
setContentView(R.layout.startup_activity);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
if (!sharedPreferences.contains("firstLaunch"))
{
// Add SharedPreferences key ("firstLaunch")
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("firstLaunch", 1);
editor.commit();
// Launch tutorial Activity here...
}
else
{
// "firstLaunch" preference exists, which means application has been launched before
// Launch primary activity here...
}
}
выше Activity
будет, каждый раз приложение запускается, проверьте, чтобы увидеть, если SharedPreference
firstLaunch
право существует. Если это NOT, это означает, что приложение никогда ранее не запускалось, а ключ firstLaunch
был создан и добавлен в SharedPrefernces
; это также, где вы хотите запустить свой учебник Activity
. С другой стороны, если существует firstLaunch
SharedPreference
, это означает, что приложение было запущено раньше, поэтому вы просто начинаете свой стандарт Activity
.
Можете ли вы объяснить, как я могу выбрать, какую активность следует начинать с переопределения onCreate() в переопределяющем классе Application? –
@WiseShepherd см. Мое обновление. – Leigh