【发布时间】:2019-12-20 12:15:06
【问题描述】:
我当前的 Android 应用程序需要调用
ActivityManager.clearApplicationUserData()
模拟用户清空App存储
效果很好。
调用clearApplicationUserData() 的副作用是应用程序(可以理解地)关闭。
这会带来糟糕的用户体验。
拨打clearApplicationUserData() 后,我无法重新启动我的应用程序。
我已尝试将startActivity、Alarm Manager 与Pending Intent、Foreground/Background 服务一起使用。
没有任何作用。
调用clearApplicationUserData()的Android App是否无法重启?
【问题讨论】:
-
我的猜测是您的应用程序最终处于停止状态,就好像用户单击了“强制停止”一样。所有未完成的警报、作业等都将被取消。 “调用
clearApplicationUserData()的Android应用程序是否无法重新启动?” - 我怀疑这在您自己的应用程序中是可能的。向用户显示一条消息,说明这将在调用该方法之前发生,并且用户可以从启动器重新启动应用程序。 -
我认为这是它的构建目的.. 带有待处理意图的警报管理器,前景/背景无论如何都会变得清晰..如果您要使用
clearApplicationUserData,那么这将是所需的流程..你可以签出它的源代码.. -
@CommonsWare 无论如何我可以启用详细日志记录(或类似的)以查看调用此方法时实际发生的情况?
-
我不知道您所说的“实际发生了什么”是什么意思,但您可以查看 Logcat 以查看正在记录的内容。如果您在 Android Studio 中查看它,请将严重性过滤器切换为“详细”,并确保将结束下拉菜单设置为“无过滤器”,以查看所有消息。
-
我过去也曾走上类似的道路。最终,手动擦除数据库和共享首选项并重新启动
MainActivity会更容易。如果这是可能的,强烈推荐!如果没有,也许类似于使用WorkManager安排一个任务(不受清除应用数据影响(?))来启动您的活动?