在Android上,用户可以使用设置 - >应用程序管理器 - >应用 - >清除数据功能并清除应用程序的所有存储数据。但是,如果用户使用应用切换器切换回应用,它将切换回上次使用的活动。在某些情况下,例如,对于需要登录的应用,该活动将不适用于没有数据的情况。申请应如何处理他的案件?每个Activity是否应该从一个基本的Activity类派生,该类检查数据是否已被删除,然后启动相应的Activity(例如,登录Activity)?有没有比这更优雅的解决方案?
答案 0 :(得分:1)
不要检查数据是否已被删除,只需检查用户是否已登录。如果不是,则可以按照建议将其发送回登录屏幕。
在任何情况下,如果您正在使用oAuth,或者打算将其实现为登录,则应该实现检查用户是否已登录,因为oAuth令牌最终会过期。在这种情况下,没有数据被删除,但用户不再登录,这会导致他们陷入不适当的Activity
。
只需为ActivityThatRequiresLogin
创建一个超类,它将检查用户是否已登录,并且所有ActivityThatRequiresLogin
都扩展了该类。然后,只要调用onCreate
和onResume
方法,就可以调用super。
如果用户擦除了他们的数据,他们会自动退出,所以您只需检查他们是否已登录。
答案 1 :(得分:1)
按清除数据会停止应用程序的进程,因此您的代码将无法运行 不幸的是,除非你system app。
,否则无法捕捉到这种行为的意图 处理这种情况的最佳实践方法是使用SharedPreference mechanism和基本活动类。