android service基础四大组件

不需要交互的东西 而且长期需要 不依赖于任何界面 被切到后台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 传入
  }
}

把message发送出去handler 会收到message 并且处理

handle 中的handlemessage 收到 message 按逻辑进行处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值