我过去成功的做法是创建作为主要活动的无形活动。它永远不会显示给用户,因为它会在构造函数中启动“正确”的活动。
由于这个原因,没有必要将活动设置为“不可见”,因为它不会加载视图。
在里面我放置了一些逻辑,它决定了哪个活动首先显示给用户。这对我的用例非常合适 - 试试看。
舱单申报(注意noHistory="true"参数):
android:name=".activity.EntryActivity"
android:launchMode="singleInstance"
android:noHistory="true" >
注:正如指出out in comments below,该launchmode设置无关这个问题IIRC。这与EntryActivity启动的各种方式有关。
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;
}
}