2012-12-31 106 views
0

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

现在我的问题是: 我切换到另一个活动(比方说,“SecondActivity”)的“FirstActivity”的callback(handleMessage())之前然后调用:

1。是“FirstActivity”已经可用于垃圾回收?
2.如果我们完成“FirstActivity”并转到“SecondActivity”,那么“FirstActivity”上的视图可用或变为空?如果不成为null,那么为什么因为“FirstActivity”在这个时间点完成了,并且如果我们想更新视图,那么它应该抛出NullPointerException。

回答

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

它的simple.above代码可以让你从处理程序更新你的UI。

0

如果我们完成第一个活动,它将不再可用。
如果您想要再次更新第一个活动,您应该将意图传递给第一个活动。 然后你应该更新..那时你不会得到空指针异常。 您应该为此通过活动生命周期。