当用户登录时,将值对添加到SharedPreference中。 当应用程序被杀死时,我希望用户注销,下次启动时需要再次登录。 如果用户从一个活动切换到另一个活动并再次返回到主活动,则他将被注销。
问题是来自MainActivity的onStop被调用并取消设置SharedPreference中的条目。 我希望在活动之间切换时保持该条目,但是当应用程序退出/终止时,该条目将被取消。
答案 0 :(得分:2)
而不是onStop()
尝试onDestroy()
。在活动不可见时调用onStop()
,在活动即将被销毁时调用onDestroy()
。
答案 1 :(得分:1)
我发现这样做的唯一保证方法是创建一个实现Application.ActivityLifecycleCallbacks的类。实施必要的方法来保持已经启动,停止,恢复和销毁的活动的计数器。
实现该类后,您可以在Application类实现中注册您的实现,如下所示:
registerActivityLifecycleCallbacks(new MyLifecycleHandler());
当已启动活动的数量等于已销毁活动的数量时,您可以调用方法来注销用户。或者只是保留一个计数器并在活动开始时递增它,并在它们被销毁后递减它 - 相同的差异。
您可以使用相同的策略来判断您的应用是否在前台。