在Launcher属性的Activity的onCreate里添加如下语句:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.d(TAG, String.format("onCreate flag=0x%x",getIntent().getFlags()) );
    // 按home键后,从Home点击应用图标再次打开时,没有打开当前界面,从头开始启动应用的问题。
    // 清单中的launchMode设置为singleInstance, 桌面点击时Flag是:FLAG_ACTIVITY_BROUGHT_TO_FRONT
    // 单中的launchMode设置为singleTask,桌面点击时Flag是FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
    if (((getIntent().getFlags() & (Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)) != 0)) {
        Log.d(TAG, "onCreate FLAG_ACTIVITY_BROUGHT_TO_FRONT");
        finish();
        return;
    }
//......

}
// 按home键后,从Home点击应用图标再次打开时,没有打开当前界面,从头开始启动应用的问题。
    // 按home键后,从Home点击应用图标再次打开时,没有打开当前界面,从头开始启动应用的问题。
    // 清单中的launchMode设置为singleInstance, 桌面点击时Flag是:FLAG_ACTIVITY_BROUGHT_TO_FRONT
    // 单中的launchMode设置为singleTask,桌面点击时Flag是FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐