【发布时间】:2021-04-30 13:02:04
【问题描述】:
我正在制作一个消息应用程序,为了设置用户的状态,我必须跟踪我的应用程序的状态。当我运行 apk 时,无论应用程序的状态如何,都不会触发 ActivityLifecycleCallbacks。到目前为止,我已经尝试了所有可能的修复方法,但没有一个成功。这是代码:
public class AppState extends Application implements Application.ActivityLifecycleCallbacks {
@Override
public void onCreate() {
super.onCreate();
Log.e("AppState ", "onCreate");
registerActivityLifecycleCallbacks(this);
}
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
Log.e("onActivityCreated", activity.getLocalClassName());
}
@Override
public void onActivityStarted(Activity activity) {
setLastSeen(KEY_LAST_SEEN_ONLINE);
}
@Override
public void onActivityResumed(@NonNull Activity activity) {
Log.e("onActivityResumed", activity.getLocalClassName());
}
@Override
public void onActivityPaused(@NonNull Activity activity) {
Log.e("onActivityPaused", activity.getLocalClassName());
}
@Override
public void onActivityStopped(Activity activity) {
setLastSeen(String.valueOf(System.currentTimeMillis()));
}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
Log.e("omInstanceState", activity.getLocalClassName());
}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
Log.e("onActivityDestroyed", activity.getLocalClassName());
}
private void setLastSeen(String lastSeen) {
FirebaseDatabase.getInstance().getReference(KEY_COLLECTION_USERS)
.child(FIREBASE_USER.getUid())
.child(KEY_LAST_SEEN)
.setValue(lastSeen);
}
}
为了澄清起见,我一直在阅读文档和其他一些调整,但没有一个提到在我的项目的其他类上实现代码,所以我认为问题出在这个类中。 谢谢你的时间:)
【问题讨论】:
标签: android android-activity android-lifecycle