runOnUiThread方法模拟小部件?

时间:2013-11-07 15:56:53

标签: java android android-widget widget

我有一个小部件需要在另一个线程中执行某些操作。它有一个处理一些数据的方法,并在小部件的TextView中显示结果 为了实现这一点,我需要在一个单独的线程中调用我的方法。然后我需要在该方法的末尾包含一些代码以在小部件上显示结果(类似textView1.setText("my results");。)这必须在UI线程中完成。我想使用方法{ {1}}。但它只存在于一个活动。这个方法是否类似于widget类?我可以在我的小部件中使用该方法吗?

这是我的代码:

runOnUiThread

2 个答案:

答案 0 :(得分:2)

您可以使用Handler连接UI线程并在其队列中发布。 Handler.post(Runnable)Here文档

答案 1 :(得分:1)

blackbelt的答案很棒,但你也可以使用textView1.post(runnable)和类似的方法。这样您就不必创建Handler实例,代码将在UI线程上运行。 AFAIK两种解决方案都可以完全相同。

对于RemoteViews:

Handler mHandler = new Handler();//this must be ran on the UI thread.
....
mHandler.post(new Runnable(){
    public void run() {
        toBeLaunchedInASeparateThread();
    }
});