Java 每次使用android时,通过Intent创建新的活动实例?
如何防止每次创建门店活动实例 当我调用Java 每次使用android时,通过Intent创建新的活动实例?,java,android,android-activity,Java,Android,Android Activity,如何防止每次创建门店活动实例 当我调用startActivity(newintent(this,StoreActivity.class))时,它将在StoreActivity中创建新实例并调用OnCreate方法。我想在创建时调用一次Oncreate 这可能吗?这样做 startActivity(new Intent( this,StoreActivity.class).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)); 从 如果已设置,则如果
startActivity(newintent(this,StoreActivity.class))
时,它将在StoreActivity
中创建新实例并调用OnCreate
方法。我想在创建时调用一次Oncreate
这可能吗?这样做
startActivity(new Intent(
this,StoreActivity.class).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
从
如果已设置,则如果活动已在历史堆栈顶部运行,则不会启动该活动
常量值:536870912(0x20000000)这是不可能的,因为每次按下后退按钮时,都会调用onBackPressed()方法,该方法实际上会破坏您的存储活动 如果希望此方法不破坏您的活动,只需删除或注释掉此方法中的super.onBackPressed()行即可
在这种情况下,按下“上一步”按钮时,您的活动不会被销毁,但您必须使用任何其他逻辑将您的MainActivity置于堆栈顶部。尝试在启动新活动后完成第一个活动, 在Intent命令之后添加此代码 完成() 就像这样:
startActivity(new Intent(this, newActivity.class));
finish();
检查此链接
像这样开始你的活动:
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);
在第一次启动activity时,它将只调用onCreate(),如果activity已经在运行,它将只调用onNewIntent(),而不是创建activity的新实例或调用onCreate 你说它不工作是什么意思?即使“活动”已打开,它是否仍在启动新实例?当我从MainActivity调用storeActivity时,在创建storeActivity实例期间调用OnCreate方法时,现在我按back,onBackpressMethod调用from storeActivity。。。我又回到了主要活动中。。现在,当我从主活动重定向到存储活动时,它不应该是StoreActivity的callonCreate方法。。因为我已经创建了StoreActivity的实例。它不是这样工作的。这与Android框架流程背道而驰。你应该重新思考你想要达到的目标,这是不可能的。您应该查看此文档,并使用类似的概念保存活动状态(当您的活动被销毁时),然后在根据意图重新创建活动时重用这些保存的状态。
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);