当前位置: 首页 > 知识库问答 >
问题:

当Android资源被释放时?

路和悌
2023-03-14

我在片段HomeFragment.java中声明了一个私有变量,


    private List&ltWeatherCard> mWeatherCards = new ArrayList<>();


    public class WeatherCard {
    private String city;
    private TextView mWeatherIcon;
    private TextView mCityText;
    private TextView mTemperatureText;
    private TextView mRefreshTimeText;
    private TextView mDescription;
    private TextView mWindIcon;
    private CardView mCardView;
}

当我按下android导航栏上的back按钮时,应用程序被关闭,activity调用了onDestory()方法,但我发现变量mWeatherCards没有被回收,只有在我使用taskmanager关闭应用程序时才会被清理。taskmanager和back按钮关闭app和android资源释放时有什么区别?

共有1个答案

丁灿
2023-03-14

当你按下返回按钮时,应用程序并没有退出,它被移到后台,资源仍然处于等待状态。如果你想在返回按钮上退出你的应用程序,你可以点击这个链接Android:当按下返回按钮时退出应用程序

 类似资料:
  • 我有这样的代码: Veracode在这一行上检测到一个缺陷(不正确的资源关闭或释放)bw.write(s);怎么解决这个?提前致谢

  • 调用.unsubscribe()将取消一个成员的回调监听Observable流。 当创建Observable时,您还可以返回自定义回调onUnsubscribe,当收听流的成员取消订阅时将调用该回调。 这对于必须实现的任何类型的清理都很有用。 如果我们没有清除setTimeout,那么值仍然会发射,但是没有人听。 为了节省资源,我们应该停止发射值。 一个重要的事情要注意的是,当您调用.unsubs

  • 当我运行我的应用程序时,有时我会在控制台中收到一条消息,说明: 系统:调用释放失败的资源。 这并不总是发生,所以我很难找到问题所在。有没有办法让控制台指定它是哪个资源? 谢啦

  • 我使用HttpClient,但遇到了一些问题。无论我是否想要获取实体,我都需要手动释放HttpGet和InputStream。是否有任何方法可以自动释放资源,例如Java7中的HttpClient的“尝试使用资源”。我希望不要使用httpget。中止()和流内。再次关闭()。

  • 我有一本阅读应用电子书。在阅读了几章之后,设备会在内存过载后终止应用程序。从一章跳到另一章时,我收到以下消息:W/System:A资源调用release失败。我在堆栈上的另一个相同问题上看到了相同的答案,但没有什么真正的帮助。 这个问题太令人沮丧了,我找不到解决办法。谢谢你的帮助。非常感谢。

  • 问题内容: 我有一个指向由Go结构包裹的C类型的指针,如下所示: C类型又具有以下功能: 有没有一种方法可以确保实例完成后立即调用? 问题答案: 您可以使用runtime.SetFinalizer。当对象超出范围时,这使您可以运行清除功能。它不能保证运行。但是,释放内存时,这并不重要。重要的是,对于一个长时间运行的过程,很可能会检查垃圾。 以下是一些文档摘录(删除了整个段落): SetFinali