【问题标题】:will an instance variable of other class be destroyed when activity is destroyed?活动被销毁时,其他类的实例变量会被销毁吗?
【发布时间】:2014-01-24 16:23:32
【问题描述】:

我是 Java 和 Android 新手。

如果我的问题是愚蠢的,请不要犹豫解释..

我引用了另一个类

someclass x = new someclass()

在活动(MainActivity.java)类中,该类(someclass)有一个静态变量。

activity销毁时那个引用变量(类的实例变量)是否也销毁了?

我问这个问题是因为这个类包含一些静态变量......

【问题讨论】:

    标签: java android class variables instance


    【解决方案1】:

    static 变量存在,无论该类的对象是否存在。因此,即使 MainActivityonDestroy() 被调用,该值也会存在。如果您有 100 个其他活动,它们将可以访问静态变量。

    【讨论】:

    • someclass x = new someclass()。变量 'x' 怎么样 - 那是 someclass 的实例。 Activity被销毁时会被销毁吗?
    • 如果对对象的引用没有被传递到其他地方,则不再有访问实例变量的方法,它将与对象一起被 GC 处理
    • @svenoaks 我的问题是我在 MainActivity 中引用了某个类,当 MainActivity 销毁时,该引用和该类的所有变量是否会从内存中清除?我不清楚声明“如果对对象的引用没有传递到其他地方”如何从活动中传递类的对象。我认为这是不可能的,因为该对象不是可序列化的......
    • 当然可以,它不需要是可序列化的。您可以将 someclass 实例传递给在另一个线程中保留引用的另一个类,或者传递给某处的静态 someclass 变量。然后,某个类实例的实例变量将在 Activity 销毁之后保持活动状态。重要的是实例变量与类的特定实例相关联,如果您有对该实例的引用,您仍然可以访问它们。
    • @svenoaks-- 在活动类中我创建了那个引用对象,当活动被破坏时它会被破坏吗?(仅在我问的那个特定活动中)..但我们可以在其他一些活动中保留引用我知道的类...那次活动破坏后在 MainActivity 中创建的引用呢...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多