在按下设备的主页键后,按应用程序图标按下打开最近的活动

时间:2017-06-19 11:53:32

标签: android android-intent savestate

我的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" />

2 个答案:

答案 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
}