kotlin开发安卓APP,子线程无法操作View
现在提供一个方案
子线程向主进程发送消息,由主进程操作view
val handler=object:Handler(Looper.getMainLooper()){
//接受消息,并处理处理
override fun handleMessage(msg: Message) {
super.handleMessage(msg)//固定写法,照抄
//这里开始,是自定义对消息的处理,是主进程处理
text.setText(secondConvertTime(timeToal))
if (timeToal<=0){
isCountDown=false
button_start.isEnabled = timeToal>0
button_start.setText(getString(R.string.startClock))
}
if (isCountDown){
timeToal-=1
val message=Message.obtain()
this.sendMessageDelayed(message,983)
}
}
}
//另外一个地方发送消息
fun timeProcess(view: View) = if(button_start.text.toString()==getString(R.string.startClock)){
isCountDown=true
button_start.setText(getString(R.string.stopClock))
val message=Message.obtain() //创建消息对象
message.arg1=timeToal
handler.sendMessage(message)//发送消息对象