📜  使用Kotlin在Android中运行用户界面线程

📅  最后修改于: 2021-08-24 05:04:47             🧑  作者: Mango

Android中的用户界面线程或UI-Thread是一个Thread元素,负责隐式或显式更新应用程序的布局元素。这意味着,要在应用程序布局(即应用程序的前端)中更新元素或更改其属性,可以使用UI-Thread。

实现UI线程:
例如,启动了一个线程操作,并且开发人员想要相对于线程元素更新前端元素,可以使用runOnUIThread {…}函数。
以下是使用UI线程的应用程序示例。

示例应用程序,其中TextView中的文本每秒更改一次

最初,该应用程序将显示欢迎消息,并且一旦单击开始按钮,它将每秒显示2条消息,分别是“ love gfg”和“ not gfg”。
方法:
步骤1:activity_main.xml中添加以下代码。在这里,向我们的MainActivity布局添加一个TextView和一个按钮。

html


  
    
  
    


Java
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Assigning Layout elements
        val tv = findViewById(R.id.tv1) 
        val btn = findViewById


html


  
    


Java
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Assigning Layout elements
        val et = findViewById(R.id.et1) 
        val btn = findViewById


步骤2:在MainActivity中添加以下代码。在这里,OnClickListener随按钮一起添加。因此,只要用户单击该按钮,它就会被调用。在侦听器中,在主线程中创建一个无限循环,并使用UI线程每秒更改一次文本。

Java

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Assigning Layout elements
        val tv = findViewById(R.id.tv1) 
        val btn = findViewById

注意: While循环必须仅在线程内部声明。如果在while循环内声明了Thread,则该程序将无法运行并崩溃。
采样计时器应用
根据以上代码的基本概念,可以设计计时器应用程序。下面是相同的代码:
方法:
步骤1:在MainActivity布局中添加以下代码。此处添加了按钮,edittext和textview。该按钮用于启动调光器,edittext用于接受用户输入,textview用于显示剩余时间。

html



  
    

步骤2:在MainActivity类中添加以下代码。在这里,我们添加带有按钮的onClickListener 。单击该按钮时, runOnUiThread函数用于显示剩余时间。

Java

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Assigning Layout elements
        val et = findViewById(R.id.et1) 
        val btn = findViewById

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!