【问题标题】:How to execute a function at thread end?如何在线程结束时执行函数?
【发布时间】:2012-06-03 13:10:08
【问题描述】:

通过Android中的AsyncTask方法,存在事件onPostExecute()在任务结束后执行代码。线程方法的等价物是什么?我搜索了,但没有找到任何解决方案。

编辑:我无法在 run 方法的末尾调用,因为我需要在 UI 线程中执行操作,并且我无法在不同的线程中执行此操作。

【问题讨论】:

    标签: java android multithreading task


    【解决方案1】:

    将调用放在 run 方法的末尾...

    run(){
        ...
        handler.post(...);
    }
    

    【讨论】:

    • 不,我不能,因为我需要在UI线程中执行操作,我不能在不同的线程中执行这个操作...
    【解决方案2】:

    如果您在 Activity 中运行线程,您可以在线程中使用以下代码:

    runOnUiThread(new Runnable() { public void run(){ //your ui altering code here }})

    【讨论】:

      【解决方案3】:

      您可以使用 Activity.runOnUiThread(Runnable) 方法从非 UI 线程在 UI 上执行代码。

      如果您需要更多地控制线程事件或想要发回进度更新,您应该使用Handler 和 [HandlerThread]。将 UI 处理程序传递给后台线程,然后使用从后台线程向 UI 线程处理程序发布消息。实现handleMessage(message) 以对这些事件采取行动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        • 2023-03-21
        • 2018-04-27
        • 2021-03-20
        • 2017-07-08
        相关资源
        最近更新 更多