Android 更新UI的方法汇总

时间:2021-05-21

1、Activity的 runOnUiThread

textView = (TextView) findViewById( R.id.tv );new Thread(new Runnable() {@Overridepublic void run() {runOnUiThread(new Runnable() {@Overridepublic void run() {textView.setText( "更新UI了");}});}}).start();

android Activity runOnUiThread() 方法使用

2、Handler sendEmptyMessage()

package lib.com.myapplication;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView textView ;Handler handler = new Handler( ) {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);textView.setText( "Ui更新了");}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById( R.id.tv );new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep( 2000 );} catch (InterruptedException e) {e.printStackTrace();}handler.sendEmptyMessage( 2 ) ;}}).start();}}

3、Handler post()

package lib.com.myapplication;import android.os.Bundle;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView textView ;Handler handler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById( R.id.tv );new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep( 2000 );} catch (InterruptedException e) {e.printStackTrace();}handler.post(new Runnable() {@Overridepublic void run() {textView.setText( "Ui更新了");}}) ;}}).start();}}

4、view Post() 

textView = (TextView) findViewById( R.id.tv );new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep( 2000 );} catch (InterruptedException e) {e.printStackTrace();}textView.post(new Runnable() {@Overridepublic void run() {textView.setText( "Ui更新了");}}) ;}}).start();

总结:

1、其实上面的四种方式都可归结于一种方式:handler 用于Android线程之间的通信。

2、为什么android要求只能在UI线程进行UI操作? 主要还是为了避免多线程造成的并发的问题。在单线程操作UI是安全的。

以上所述是 给大家介绍的Android 更新UI的方法汇总的相关知识,希望对大家有所帮助,如果大家有疑问欢迎给我留言,小编会及时回复大家的!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章