java-在主线程外更新UI

java-在主线程外更新UI,第1张

概述我对android完全陌生,只是想知道在主线程之外更新UI的方法是否可行.仅从我的代码中,我就在下面列出了这些代码;根本不可能.但是,我只想使用另一个线程来更新UI.请提前帮助我!packagecom.example.app;importjava.util.Random;importandroid.os.Bundle;importandroid.a

我对android完全陌生,只是想知道在主线程之外更新UI的方法是否可行.仅从我的代码中,我就在下面列出了这些代码;根本不可能.但是,我只想使用另一个线程来更新UI.请提前帮助我!

 package com.example.app; import java.util.Random;  import androID.os.Bundle;  import androID.app.Activity;  import androID.vIEw.Menu; import androID.vIEw.VIEw;  import androID.Widget.button; import androID.Widget.ImageVIEw;import androID.Widget.TextVIEw;public class MainActivity extends Activity {private button b;public ImageVIEw I1; public ImageVIEw I2; public ImageVIEw I3;public ImageVIEw I4;public TextVIEw T;public TextVIEw s;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVIEw(R.layout.activity_main); I1=new ImageVIEw(this); I1=(ImageVIEw) findVIEwByID(R.ID.imag1); I1.setVisibility(VIEw.INVISIBLE); I2=new ImageVIEw(this); I2=(ImageVIEw) findVIEwByID(R.ID.imag2); I2.setVisibility(VIEw.INVISIBLE); I3=new ImageVIEw(this); I3=(ImageVIEw) findVIEwByID(R.ID.imag3); I3.setVisibility(VIEw.INVISIBLE); I4=new ImageVIEw(this); I4=(ImageVIEw) findVIEwByID(R.ID.imag4); I4.setVisibility(VIEw.INVISIBLE); T=(TextVIEw)findVIEwByID(R.ID.time); s=(TextVIEw)findVIEwByID(R.ID.score);Thread t=new Thread(new MyThread());t.start();  }@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private class MyThread implements Runnable{Random randomGenerator = new Random();int n;public voID run(){    while(true){        n=randomGenerator.nextInt(8);        if(n==1){            I1.setVisibility(VIEw.VISIBLE);        }        if(n==2){            I2.setVisibility(VIEw.VISIBLE);        }        if(n==3){            I3.setVisibility(VIEw.VISIBLE);        }        if(n==4){            I4.setVisibility(VIEw.VISIBLE);        }        try {            Thread.currentThread().sleep(500);        } catch (InterruptedException e) {            // Todo auto-generated catch block             e.getStackTrace();        }    }   }   }   }

解决方法:

使用activity.runOnUiThread

Acivity.runOnUiThread(new Runnable() {    public voID run() {        //something here    }});
总结

以上是内存溢出为你收集整理的java-在主线程外更新UI全部内容,希望文章能够帮你解决java-在主线程外更新UI所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1095265.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存