卸载应用程序时,内部存储“getFilesDir()”中的文件不会被删除
Posted
技术标签:
【中文标题】卸载应用程序时,内部存储“getFilesDir()”中的文件不会被删除【英文标题】:Files in internal storage "getFilesDir()" are not being deleted when app is uninstalled 【发布时间】:2020-09-01 18:31:37 【问题描述】:标题几乎说明了一切。
我在内部存储中使用来自getFilesDir()
的路径创建了文件,其想法是在卸载应用程序时应将其删除。但它们根本没有被删除。
如果我想删除数据,我必须在手机应用程序设置中手动删除,或者使用 android Studio 中的设备文件资源管理器手动删除文件。这并不理想。
谁能帮忙?
【问题讨论】:
难以置信,因为它们应该在卸载时被删除。你有什么特殊的设备在哪个Android版本下? “如果我想删除数据,我必须在我的手机应用程序设置中手动删除”——你到底是怎么做的?如果您的应用程序已卸载,则“设置”应用程序中没有您的应用程序的位置。如果您担心重新安装后文件似乎仍然存在,请尝试在清单中的<application>
元素上设置android:allowBackup="false"
。
@CommonsWare 我在卸载之前在应用设置中“清除数据”和“清除缓存”。这是我可以删除它们的唯一方法。
请注意其他奇怪的行为。在我手动清除数据并卸载,然后重新安装后,文件重新出现。就像每次我安装时它们都会被推送到手机上。那可能吗?我该如何阻止它? 刚刚看完你的评论。我会试试的
@CommonsWare 好用!非常感谢!
【参考方案1】:
android:allowBackup
属性可用于<application>
,用于控制应用程序的数据是否可以由操作系统自动备份。如果此属性设置为 true
并重新安装应用程序,则会恢复其数据的备份。在开发过程中,这可能会很痛苦。而且,在生产环境中,您和用户都无法控制备份过程。
如果您希望禁用此功能 - 对于 debug
构建或所有构建 - 在相应版本的清单中将 android:allowBackup="false"
设置为 <application>
(例如,src/main/
用于所有构建,src/debug/
用于 @987654329 @ 构建)。
【讨论】:
以上是关于卸载应用程序时,内部存储“getFilesDir()”中的文件不会被删除的主要内容,如果未能解决你的问题,请参考以下文章