2010-12-12 3 views
2

Основной вид деятельности указан в AndroidManifest.xml с:Динамически Указать первую активность

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

Но я не знаю, как динамически указать первую активность по логике кода.

ответ

9

Укажите действие по умолчанию, которое содержит логику для запуска любого действия, которое вы хотите, в своем методе onCreate.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // CODE HERE TO CREATE INTENT 
    startActivity(intent); 
    finish(); 
} 
0

У меня нет точек для добавления комментариев, но в некоторых случаях может быть полезно удалить операцию запуска из задней стопки. Это сообщение SO объясняет, как это сделать: Removing an activity from the history stack

2

@Ian G's answer правильный - но я думаю, что его можно улучшить, удалив действие запуска из задней части стола. Это то, что @gardarh is trying to say.

У меня есть полный ответ на этот смежный вопрос, который в основном показывает обе стороны проблемы, код активности & манифеста код:

Код активности в основном так же, как @ Ян, так что я не буду повторять это. Но я добавлю свое дополнение к его ответу.


Manifest декларация (обратите внимание на параметр noHistory="true"):

<activity 
     android:name=".activity.EntryActivity" 
     android:launchMode="singleInstance" 
     android:noHistory="true" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

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