我过去成功做的是创建一个无形的活动作为主要活动。它永远不会显示给用户,因为它在构造函数中启动了“正确”的活动。
出于这个原因,没有必要将活动主题设置为“不可见”,因为它不加载视图。
在里面我放置了一些逻辑来确定首先向用户显示哪个活动。这非常适合我的用例 - 试一试。
清单声明(注意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;
}
}