Java 我想在活动中运行一次代码

Java 我想在活动中运行一次代码,java,android,firebase,Java,Android,Firebase,我有一个活动,我在其中来回。但我希望这个代码在里面运行一次,即使我切换了活动 //get the Current user id(uid) userId = FirebaseAuth.getInstance().getCurrentUser().getUid(); Log.i("UID",userId); orderDatabaseReference = FirebaseDatabase.getInstance().getReference("Orders").child

我有一个活动,我在其中来回。但我希望这个代码在里面运行一次,即使我切换了活动

//get the Current user id(uid)
    userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
    Log.i("UID",userId);
    orderDatabaseReference = FirebaseDatabase.getInstance().getReference("Orders").child(userId);
    id = orderDatabaseReference.push().getKey();

我知道启动、恢复的方法。。。但是它们也是一样的

如果你从一个活动转到另一个活动,然后又回来,你的所有方法都会再次启动,因为生命周期再次开始,这在你旋转设备时也会发生,为了更好地理解如何保存数据,你可以看到这一点,如果你想了解安卓生命周期,请阅读和阅读

您可以将
ViewModel
用作

文件


如果要在本地持久化数据,也可以使用。

很可能要将此代码放入创建活动实例时运行一次的
onCreate()
。当用户转到另一个活动并返回时,它不会运行,除非第一个活动同时被销毁。但是,无论如何,您很可能需要刷新与Firebase的连接。正如加斯顿在回答中指出的那样,您需要了解整个Android生命周期,并了解每个事件何时触发,以便决定在何处编写代码。

最有可能的情况是,您应该将此代码放入
onCreate()
。还有一件事,@code peeditor指出,当您放入
finish()时,就需要销毁一个活动
导航到其他活动,或在家中结束前台的活动button@GastónSaillén此外,系统可以在需要释放资源或响应系统事件(如方向改变)时选择销毁活动。这些都是我在这里想的。@GastónSaillén只需注意,早期的Android文档说明可以杀死单个活动,但事实并非如此。只有当系统需要释放内存时,才会终止进程。请参见此处:@DanielNugent感谢您的澄清。这是我没有意识到的。