问题:打开应用后,从activity A跳转到activity B,点击home键后,点击图标,重新启动activaty A,而不是回到activity B

解决方案一,增加一个静态变量作为标识:

private static boolean isUpgrade = false; // 标识

在activity A的oncreate中判断静态标识位状态,如果为true则直接进入activity B

if (isUpgrade) {

startUnityActivity();

return;

}

在进入activity B时改变状态,

private void startUnityActivity() {

isUpgrade = true;

Intent intent = new Intent(this, B.class);

startActivity(intent);

finish();

}

解决方案二,判断activity A是否处于栈底,如果处于栈底,则直接关闭。在activity A的onCreate中添加(注意,代码添加在super.onCreate()之后,不然报错):

if (!isTaskRoot()) {

try {

Intent mainIntent=getIntent();

String action=mainIntent.getAction();

if(mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {

finish();

return;//finish()之后该活动会继续执行后面的代码,你可以logCat验证,加return避免可能的exception

}

} catch (Exception e) {

}

}

Logo

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

更多推荐