如何防止每次创建Store实例活动?
当我致电startActivity(new Intent(this,StoreActivity.class))
时,它会在OnCreate
中创建新实例并调用StoreActivity
方法。我想打电话一次Oncreate
。
这可能吗?
答案 0 :(得分:1)
这样做
startActivity(new Intent(
this,StoreActivity.class).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
public static final int FLAG_ACTIVITY_SINGLE_TOP
如果设置,如果活动已经在历史堆栈的顶部运行,则不会启动该活动。
常数值:536870912(0x20000000)
答案 1 :(得分:0)
这是不可能的,因为每次按下后退按钮时,都会调用 onBackPressed()方法,该方法会实际销毁 StoreActivity 。
如果您希望此方法不破坏您的活动,只需在此方法中删除或注释掉 super.onBackPressed()行。
在这种情况下,按下后退按钮时不会销毁您的活动,但是您必须使用任何其他逻辑将 MainActivity 置于堆栈顶部。
答案 2 :(得分:0)
尝试在开始新活动后完成第一个活动, 在Intent命令之后添加此代码。
结束();
像那样:startActivity(new Intent(this, newActivity.class));
finish();
答案 3 :(得分:0)
按此开始您的活动:
Intent storeIntent = new Intent(this, StoreActivity.class);
storeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(storeIntent);
首次启动活动时,它只会调用onCreate()一次,如果活动已经运行,则只调用onNewIntent()而不是创建新的活动实例或调用onCreate。