Java 使用runOnUiThread重复此函数以更新textview位置
我试图让我的文本视图每隔一两分钟出现在屏幕的不同位置(延迟并不重要)。我看到有人建议我使用runOnUiThread让计时器重复随机函数并更新UI 我真的很难理解这些不同的思路,只是想知道是否有人能给我举个例子?或者我应该使用不同的方法进行研究Java 使用runOnUiThread重复此函数以更新textview位置,java,android,function,repeat,Java,Android,Function,Repeat,我试图让我的文本视图每隔一两分钟出现在屏幕的不同位置(延迟并不重要)。我看到有人建议我使用runOnUiThread让计时器重复随机函数并更新UI 我真的很难理解这些不同的思路,只是想知道是否有人能给我举个例子?或者我应该使用不同的方法进行研究 Public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate
Public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.digitalClock1);
Random r = new Random();
int x = r.nextInt(350 - 100);
int y = r.nextInt(800 - 100);
textView.setX(x);
textView.setY(y);
}
试试这个方法
public void doInback()
{
handler.postDelayed(new Runnable() {
@Override
public void run()
{
// TODO Auto-generated method stub
// Try the code that you want to repeat
doInback();
}
}, 1000);
}
只需调用您想要使用的方法。在下面创建runnable和处理程序
private Runnable runnable = new Runnable(){
@Override
public void run() {
handler.sendEmptyMessage(0);
}
};
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//change the text position here
this.postDelayed(runnable , TIME_OUT_MS);
}
};
超时\u MS是以毫秒为单位的所需超时
并将其放在活动的OnCreate()方法上
Thread thread =new Thread(runnable );
thread.start();
您必须使用runOnUiThread更新您的文本视图,但不要在此线程上运行计时器!使用一个新线程来调度或一个调度执行器服务:如果调用此方法,它不会只重复函数一次吗?好的,请原谅我的无知,但最后一个“Thread-Thread=new-Thread(runnable);Thread.start();”位应该放在哪里?