• 线程的基本用法


    class MyThread : Thread() {
        override fun run() {
            // 编写具体的逻辑
        }
    }
    启动这个线程只需要创建MyThread的实例,然后调用它的start()方法即可,这样run()方法中的代码就会在子线程当中运行了,如下所示:
    MyThread().start()
    

      

    在子线程中更新UI
    Android的UI是线程不安全的,也就是说,如果想要更新应用程序里的UI元素,必须在主线程中进行,否则就会出现异常。对于这种情况,Android提供了一套异步消息处理机制,完美地解决了在子线程中进行UI操作的问题。
    class MainActivity : AppCompatActivity() {
    
        val updateText = 1
    
        val handler = object : Handler() {
            override fun handleMessage(msg: Message) {
                // 在这里可以进行UI操作
                when (msg.what) {
                    updateText -> textView.text = "Nice to meet you"
                }
            }
        }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            changeTextBtn.setOnClickListener {
                thread {
                    val msg = Message()
                    msg.what = updateText
                    handler.sendMessage(msg) // 将Message对象发送出去
                }
            }
        }
    
    }
  • 相关阅读:
    ASP.NET控制cookie
    asp.net中Cookie的用法
    乱码问题
    JSP批量删除复选框选中记录
    JSP中根据时间查询
    关于<c:if>没有<c:else>解决方案
    Div
    Apache PIO 操作Excel
    将查询到的数据存到excel并下载
    做一个超链接,打开一个新窗口而保留原来的窗口
  • 原文地址:https://www.cnblogs.com/yongyuandishen/p/14905146.html
Copyright © 2020-2023  润新知