处理程序和线程ui更新

时间:2012-12-31 05:33:01

标签: android callback

我在活动中创建了一个处理程序(让我们说“ FirstActivity ”)并将此处理程序传递给一个帖子。现在我想通过从线程调用handleMessage()来更新handler.obtainMessage(100).sendToTarget()内的ui。线程需要20到30秒的时间才能将消息传递给UI。

现在我的问题是:    我在“FirstActivity”的callback(handleMessage())调用之前切换到另一个活动(让我们说“SecondActivity”):
     
1。 “FirstActivity”是否可用于垃圾收集?      
2。如果我们完成“FirstActivity”并转到“SecondActivity”,那么“FirstActivity”上的视图是可用的还是变为空?如果没有变为null那么为什么因为“FirstActivity”在这个时间点完成了,如果我们想要更新视图那么它应该抛出NullPointerException。

2 个答案:

答案 0 :(得分:0)

   runOnUiThread(new Runnable() {
        @Override
            public void run() {
                //Your code for UI update goes here.
            }
    }); 

它简单的上面的代码可以让你从处理程序更新你的UI。

答案 1 :(得分:0)

如果我们完成第一项活动,它就不再可用了。
如果要再次更新第一个活动,则应将意图传递给第一个活动。 那么你应该更新..那个时候你不会得到空指针异常。 您应该通过活动生命周期来实现此目的。