不需要交互的东西 而且长期需要 不依赖于任何界面 被切到后台service还能正常运行
service 不会自己开动子线程 要在内部自己创建
子线程的重要性 : 比如网络请求不能被及时响应若不放到子线程里面就会阻碍主线程的进行 !!
class MyThread :Thread(){
override fun run(){
//编写 具体的逻辑
}
}
使用他的逻辑 : 调用他的start()方法就行 MyThread.start()
这样继承的耦合性很高 不如继承runnable
class MyTheard : Runnable {
override fun run(){
//编写具体的逻辑
}
}
启动线程的方法为 val Mythread=MyThread()
Thread(myThred).start()
还有一种kotlin简单的方法
Thread{
//编写逻辑
}
不需要启动 Thread 自动搞好了
android UI线程是不安全的 更新UI只能在 主线程里进行
thread{
textView.text="nice to meet you"
} //这样就报错 不能更改
解决方法 android 异步消息处理机制 子线程里可操作Ui
val updateText =1
..这是一个handler
val handler=object :Handler(Looper.getMaininLooper()){
override fun handleMessage(msg: Message){
//在这里进行UI操作
when (msg.what){
updateText ->TextView.text="nice to meet you"
}
}
}
setOnClickListener{
thread{
val msg=Message()
msg.what=updateText
handler.sendMessage(msg)//将message 传入
}
}