use*_*885 4 android android-lifecycle android-activity
我正在制作一个消息应用程序,为了设置用户的状态,我必须跟踪我的应用程序的状态。当我运行 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);
}
}
Run Code Online (Sandbox Code Playgroud)
为了澄清起见,我一直在阅读文档和其他一些调整,但它们都没有提到在我的项目的其他类上实现代码,因此我认为问题将出现在此类中。感谢您的时间 :)
检查您是否AppState在清单中注册了您的应用程序类:
<application
android:name=".AppState"
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |