检查用户活动状态-Android
如何检查用户是否处于活动状态 我试了一些。。方法并得出了以下有效的结论:检查用户活动状态-Android,android,Android,如何检查用户是否处于活动状态 我试了一些。。方法并得出了以下有效的结论: @Override protected void onResume() { super.onResume(); firebaseUser = firebaseAuth.getCurrentUser(); if (firebaseUser != null) { userID = firebaseUser.getUid(); firebaseFirestore.
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
这是主要的活动。我不知道是否应该使用onStart方法。无论如何,我只想更改用户的活动状态,如果他已从“最近的应用”按钮切换应用程序,或已在应用程序之外执行任何其他操作。因为如果他这样做了,活动仍然是真实的
如果上面提到的方法是错误的,请更正它们。那么您需要使用的函数是主活动上的onStart()和onStop()。此外,建议将“活动”变量重命名为“在线” 然后我们需要在用户退出时将其设置为
false
。像这样:
@Override
protected void onStop() {
super.onStop();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("online", false);
}
}
我建议完全不要使用onDestroy()。然后您可以轻松地在数据库中访问它。希望有帮助。那么您需要使用的函数是主活动中的onStart()和onStop()。此外,建议将“活动”变量重命名为“在线” 然后我们需要在用户退出时将其设置为
false
。像这样:
@Override
protected void onStop() {
super.onStop();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("online", false);
}
}
我建议完全不要使用onDestroy()。然后您可以轻松地在数据库中访问它。希望有帮助。创建BaseActivity.java,您可以在其中发送用户联机状态 BaseActivity.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
例如,现在你还有其他活动,比如活动一、活动二和活动三
ActivityOne.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
ActivityTwo.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
ActivityThree.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
创建BaseActivity.java,您可以在其中发送用户联机状态 BaseActivity.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
例如,现在你还有其他活动,比如活动一、活动二和活动三
ActivityOne.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
ActivityTwo.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
ActivityThree.java
public class BaseActivity extends AppCompatActivity {
....
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", true);
}
}
@Override
protected void onPause() {
super.onPause();
firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
userID = firebaseUser.getUid();
firebaseFirestore.collection("Users").document(userID).update("active", false);
}
}
}
public class ActivityOne extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityTwo extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
public class ActivityThree extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
您需要创建一个BaseActivity,所有其他活动都应该被BaseActivity覆盖。当在onResume()的callbase上->更新(“活动”,true)和onPause()的callbase上->更新(“活动”,false)时@HardikBambhania你能举个例子吗?你需要创建一个BaseActivity,所有其他活动都应该被BaseActivity覆盖。当在onResume()的callbase上-->update(“active”,true)和onPause()的callbase上-->update(“active”,false)@HardikBambhania你能举个例子吗?我试着用这两个,但是当另一个活动启动时,该值被设置为false。你知道吗,你不必在其他活动的任何地方包含此函数?我的意思是,我认为你需要做的,我建议的是@Hardik所说的,但我认为你已经知道不要在其他活动中包含此代码。我尝试使用这两个,但是当另一个活动启动时,该值被设置为false。你知道吗,你不必在其他活动的任何地方包含此函数?我的意思是我认为你需要做的,我建议的是@Hardik所说的,但我想你已经知道不要在其他活动中包含此代码。我正在使用此代码进行聊天应用。当用户脱机时,将显示最后一次看到的消息。代码工作得很好。但在切换活动时,该值设置为
false
,然后设置为true
fast(我认为这是由于onResume
和onPause
方法造成的。但是,当用户与chatUser一起进入ChatActivity时,“active”字段的值为true,但显示的是最后看到的消息。这是使用addSnapshotListener
方法完成的。你知道如何完美地做到这一点吗我将此用于聊天应用程序。当用户脱机时,将显示最后一次看到的消息。代码工作正常。但在切换活动时,该值设置为false
,然后设置为true
fast(我认为这是由于onResume
和onPause
方法造成的。但是,当用户与chatUser一起进入ChatActivity时,“active”字段的值为true,但显示的是最后一次看到的消息。这是使用addSnapshotListener
方法完成的。您知道如何完美地做到这一点吗?