如何在特定活动结束时调用方法

时间:2018-04-18 11:39:03

标签: java android firebase firebase-authentication

我正在构建一个应用,我需要使用Firebase身份验证和实时数据库确定用户是在线还是离线。当用户从应用程序注销并被定向到登录页面时,我想确定用户的状态。

我正在使用AuthStateListeners来监控用户的状态。我已在我的Home活动的onCreate()方法中添加了身份验证状态侦听器,并且已在onDestroy()删除了身份验证侦听器,但只有在应用程序清除时,应用程序才会将用户的状态更改为脱机状态来自多任务托盘而不是家庭活动结束时。

3 个答案:

答案 0 :(得分:1)

@Override
    public void onDestroy() {
        super.onDestroy();
        //call you function here
    }

这是在活动结束前调用的,请参阅android活动生命周期以获取更多详细信息link

答案 1 :(得分:0)

您可以在数据库中包含用户状态字段,并根据用户行为更改其值。

实施例: 在您的MainActivity中或登录后将用户的状态设置为在线

FirebaseDatabase.getInstance().getReference().mDataBaseRef
.child(USER_REF_NAME).child(USER_STATUS_CHILD_NAME).setValue("online");

当用户点击“注销”按钮时,请调用此

FirebaseDatabase.getInstance().getReference().mDataBaseRef
.child(USER_REF_NAME).child(USER_STATUS_CHILD_NAME).setValue("offline");

有关详细信息,请查看this article中的管理状态部分 如果您想构建更高级的内容,请查看Firebase Blog post

答案 2 :(得分:0)

当用户点击退出并覆盖onDestroy()方法时调用finish()

void signOut{
 //yourCode
 finish()
}


@Override
public void onDestroy() {
    super.onDestroy();
    //call you function here
}