我在活动中创建了一个处理程序(让我们说“ FirstActivity ”)并将此处理程序传递给一个帖子。现在我想通过从线程调用handleMessage()
来更新handler.obtainMessage(100).sendToTarget()
内的ui。线程需要20到30秒的时间才能将消息传递给UI。
现在我的问题是:
我在“FirstActivity”的callback(handleMessage())
调用之前切换到另一个活动(让我们说“SecondActivity”):
1。 “FirstActivity”是否可用于垃圾收集?
2。如果我们完成“FirstActivity”并转到“SecondActivity”,那么“FirstActivity”上的视图是可用的还是变为空?如果没有变为null那么为什么因为“FirstActivity”在这个时间点完成了,如果我们想要更新视图那么它应该抛出NullPointerException。
答案 0 :(得分:0)
runOnUiThread(new Runnable() {
@Override
public void run() {
//Your code for UI update goes here.
}
});
它简单的上面的代码可以让你从处理程序更新你的UI。
答案 1 :(得分:0)
如果我们完成第一项活动,它就不再可用了。
如果要再次更新第一个活动,则应将意图传递给第一个活动。
那么你应该更新..那个时候你不会得到空指针异常。
您应该通过活动生命周期来实现此目的。