Java 从另一个线程调用runOnUiThread
我需要等待一段时间(10秒),然后我必须重新绘制画布。我用来测量时间段。我的代码(仅部分): 不幸的是,我不知道这是否正确,但这是我唯一的解决办法。也许有人能帮忙或知道更好的解决办法。我会很感激的Java 从另一个线程调用runOnUiThread,java,android,multithreading,Java,Android,Multithreading,我需要等待一段时间(10秒),然后我必须重新绘制画布。我用来测量时间段。我的代码(仅部分): 不幸的是,我不知道这是否正确,但这是我唯一的解决办法。也许有人能帮忙或知道更好的解决办法。我会很感激的 另外,对不起,我的英语不好。您也可以使用AsyncTask。让Android处理线程创建 protected Long doInBackground(URL... urls){Thread.sleep(10000);} protected void onPostExecute(Long result)
另外,对不起,我的英语不好。您也可以使用AsyncTask。让Android处理线程创建
protected Long doInBackground(URL... urls){Thread.sleep(10000);}
protected void onPostExecute(Long result) {methodToRedraw();}
您在哪里创建要发布到的处理程序?它是在活动中创建的吗?如果是这样,则不需要runOnUiThread调用,因为处理程序已经在UI线程上运行。@twaddington是对的。如果在主线程中创建处理程序,则发布的方法将在ui线程中运行。如果您使用的是runOnUiThread,您可能不需要处理程序。是的,我在活动中创建了处理程序。所以在这种情况下,可运行的更新将在UI线程上运行?@mainmilly这是正确的。您不必更改代码,但在这种情况下,对runOnUiThread的调用是多余的。根据处理程序文档:“当您创建一个新的处理程序时,它被绑定到正在创建它的线程/消息队列”:
protected Long doInBackground(URL... urls){Thread.sleep(10000);}
protected void onPostExecute(Long result) {methodToRedraw();}