“清除数据”也会杀死应用程序吗?

Posted

技术标签:

【中文标题】“清除数据”也会杀死应用程序吗?【英文标题】:Does “Clear Data” also kill the app? 【发布时间】:2012-03-19 17:03:12 【问题描述】:

当(在 Gingerbread,2.3.x 中)我点击菜单中的“清除数据”按钮 => 管理应用程序 => 应用程序时, “强制关闭”按钮也被禁用。这是否意味着“清除数据”也会杀死应用程序?

另外,我注意到在冰淇淋三明治中不会发生这种情况。那么,Gingerbread 和 Ice Cream Sandwich 的“清除数据”工作方式有什么不同?

更新:正如 MisterSquonk 所说,Froyo (2.2.x) 的行为方式与 ICS (4.x) 相同,即在之后不会禁用强制关闭您清除应用程序的数据。任何人都知道为什么行为如此不同? Gingerbread 中的错误是什么,或者是一些临时实验,导致应用程序终止并清除其数据?

附:无法创建“姜饼”标签,声誉不够 :) 附言@MisterSquonk,感谢您的标签:)

更新 2:也检查了 Honeycomb (3.2),它的行为方式也与 Froyo 和 ICS 相同。 只有 Gingerbread 会在清除数据后禁用强制关闭。

【问题讨论】:

很好看。逻辑上清除数据应该杀死应用程序,所以这可能是 ICS 中的一个错误。当然,除非 ICS 向应用程序发送某种通知 - 让我们程序员担心更多。 好吧,我只是在猜测,但如果这没有发生,那就太愚蠢了,不是吗?我只是想在这里理性地思考。我对此一无所知。 @Philip:为什么在清除数据时杀死应用程序是合乎逻辑的?我可以理解一个可能需要的场景,但每次都应该这样吗?清除 Froyo 手机上的数据不会禁用“强制关闭”按钮。 @stansult:我不确定 Gingerbread 为什么会这样做,也许这是他们决定扭转的设计决定。我不知道 Honeycomb 的行为是否相同。在我的 Froyo 手机上调试我当前的应用程序时,我经常使用清除数据但不强制关闭,因为我有一个 Application 对象,它维护着一些我不想清除的东西。如果我想从“香草”首次运行状态开始而不重新安装,尽管我可以清除数据并强制关闭。我很高兴在这种情况下我可以单独做一个或两个。 PS,我添加了姜饼标签。 @stansult:很高兴知道,感谢您的更新。 【参考方案1】:

清除数据确实会杀死应用程序,而且总是如此。

“强制停止”经历了多次迭代。它曾经意味着只是杀死所有进程和服务,并且清除数据也将与强制停止相同。还有一些旧版本的平台不如确定何时禁用按钮,这可能是您看到它在 2.2 中保持启用状态的原因。

但是在 3.2 中,我相信“强制停止”的含义更改为将应用程序置于无法运行的状态,直到用户执行某些操作以明确启动它(例如从启动器启动它,选择它作为输入法等)。进行该更改后,“清除数据”继续只是终止进程并停止其服务,因此应用程序未处于完全停止状态,因此按钮保持启用状态。

【讨论】:

@hackbog,谢谢!如果是这样的话,这是有道理的。您是否知道任何有关此内容的信息来源(强制关闭定义更改)? 我刚刚确认“清除数据”确实会杀死该应用程序。请注意,onDestroy()不会在任何正在运行的活动中调用。【参考方案2】:

是的,当您单击 Settings-->Applications-->Manage applications-->[MYApp] 中的 ClearData 按钮时 点击 MyApp.. 单击清除数据按钮 当您单击清除数据按钮时,我们将删除/删除数据..... 显然,当删除数据时,应用程序将强制关闭

【讨论】:

以上是关于“清除数据”也会杀死应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

防止在 iOS 5.0.1 中清除数据的文件属性?

android 清除缓存功能如何实现

我的设备不支持youtube怎么办

Android缓存处理和清除数据清除缓存一键清理的区别

清除数据后从共享偏好中获取价值

在应用程序退出时清除数据