0

我有一个 ChatBox 的 ArrayList,它是一个扩展活动的类。

我的问题是,如果系统杀死了我的 ChatBox 活动的一个实例,如果我使用对 ChatBox 类的引用来尝试使用通过处理程序发送的文本更新 ui,会发生什么?

4

2 回答 2

0

..除了例外,您将泄漏整个活动。任何存储Context(例如)超出活动生命周期的对象都将导致它不被 GC'ed ViewsBitmaps

我想您的应用程序的性质是非常异步的,您无法判断活动何时停止。在这种情况下,请查看 aWeakReference作为存储对您的活动的引用的一种方式。这样,如果 android 决定停止它,它将成功解除分配它,并且您将能够在搞砸之前判断 Activity 是否在您的聊天框中:

WeakReference<Activity> myWeakActivity=new WeakReference(realActivity);
.
.
Activity myActivity=myWeakActivity.get();
if (myActivity==null) {
    // Activity not active for whatever reason. 
}

您可以尝试在纵向和横向之间多次更改(这会重新启动活动)。仔细查看您的堆大小。如果您泄漏视图,您会看到它不断增长和增长,直到最终死亡。

于 2013-08-05T16:05:38.563 回答
0

你会得到 DeadObjectException...

于 2013-08-05T15:58:18.477 回答