私が過去に成功したことは、主な活動として目に見えない活動を作成することです。コンストラクターで「正しい」アクティビティを起動するため、ユーザーに表示されることはありません。
このため、ビューをロードしないため、アクティビティを「非表示」としてテーマ化する必要はありません。
内部には、ユーザーに最初に表示するアクティビティを決定するロジックを配置します。これは私のユースケースでは完璧に機能します - 試してみてください。
マニフェスト宣言 (noHistory="true"
パラメーターに注意してください):
<activity
android:name=".activity.EntryActivity"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
EntryActivity クラス:
public class EntryActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// launch a different activity
Intent launchIntent = new Intent();
Class<?> launchActivity;
try
{
String className = getScreenClassName();
launchActivity = Class.forName(className);
}
catch (ClassNotFoundException e)
{
launchActivity = DefaultHomeActivity.class;
}
launchIntent.setClass(getApplicationContext(), launchActivity);
startActivity(launchIntent);
finish();
}
/** return Class name of Activity to show **/
private String getScreenClassName()
{
// NOTE - Place logic here to determine which screen to show next
// Default is used in this demo code
String activity = DefaultHomeActivity.class.getName();
return activity;
}
}