我的Launcher类名称是“SplashScreen”。我有两个活动“MainActivity”和“MenuList”。当用户打开应用程序时,会启动SplashScreen Activity。启动屏幕活动验证并启动MainActivity。用户通过单击MainActivity屏幕中的按钮打开MenuList Activity,然后单击MenuList Activity中的主页按钮。当用户打开应用程序时,它应该直接打开MenuList Activity。我已按照以下链接进行了更改。用户在MainActivity中按主页按钮时工作正常。用户在MenuList Activity中按主页按钮时无效。请帮帮我。
https://stackoverflow.com/a/20815679/1517280
ScreenFlow: SplashScreen - > MainActivity - >菜单列表
清单代码:
<activity
android:name=".SplashScreenActivity"
android:clearTaskOnLaunch="true"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:screenOrientation="portrait" />
<activity
android:name=".MenuList"
android:windowSoftInputMode="adjustResize|stateHidden"
android:screenOrientation="portrait" />
答案 0 :(得分:0)
从SplashActivity的元素中删除android:clearTaskOnLaunch="true"
。
实际上,这对你的MainActivity也不起作用 - 因为设置了这个标志,每次你回到应用程序时,任务的堆栈都被清除,SplashActivity正在启动。
答案 1 :(得分:0)
我得到了我想要的结果。我做了以下修改:
清单文件:
<activity
android:name=".SplashScreenActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:screenOrientation="portrait" />
<activity
android:name=".MenuList"
android:windowSoftInputMode="adjustResize|stateHidden"
android:screenOrientation="portrait" />
我在SplashActivity中添加了以下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// Activity was brought to front and not created,
// Thus finishing this will get us to the last viewed activity
finish();
return;
}
//...rest of the code
}