我需要知道用户何时关闭应用程序,而不是当用户按下" home"按钮,但是当用户在"最近的应用程序菜单"中关闭应用程序时。 在这两种情况下,应用程序转到onPause方法。有没有办法告诉他们分开? 我问是因为,我想在一种情况下从我的数据库中删除用户,而不是在另一种情况下。
答案 0 :(得分:1)
您可以尝试组合活动生命周期中的多个回调。
onUserLeaveHint()
可以非常有用,可以了解活动是在背景中还是前景
isFinishing()
:可以用于了解活动是否已被finish()
电话关闭,或者系统是否关闭活动以释放资源
答案 1 :(得分:0)
您可以尝试使用服务,在此服务中覆盖onTrimMemory方法
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
switch (level) {
case ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN:
//app was closed
break;
}
}
查看有关服务的更多信息
答案 2 :(得分:0)
我不确定,但也许ActivityLifecycleCallbacks可以帮到你。它需要测试。
示例:
public class YourApplication extends Application {
@Override
public void onCreate() {
lifecycleListener = new ActivityLifecycleListener();
registerActivityLifecycleCallbacks(lifecycleListener);
}
public class ActivityLifecycleListener implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
}