はタスクがアンドロイドの別のスレッドで実行中にUIを更新するにはどうすればよいですか?私は私がやっているテキストビューを使用して、私のユーザーインターフェースを更新しようとしている
int i;
while(true)
{
Thread.Sleep(1000);
textView.setText(updateTime);
}
はタスクがアンドロイドの別のスレッドで実行中にUIを更新するにはどうすればよいですか?私は私がやっているテキストビューを使用して、私のユーザーインターフェースを更新しようとしている
int i;
while(true)
{
Thread.Sleep(1000);
textView.setText(updateTime);
}
あなたが更新できる方法をrunOnUiThread使用して、この1 arnab ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView textView = (TextView) findViewById(R.id.displayid);
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
bundle = msg.getData();
textView.setText(bundle.getString("mKey"));
}
};
}
public void press(View v) {
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
synchronized (this) {
try {
wait(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
bundle = new Bundle();
message = handler.obtainMessage();
simpleDateFormat = new SimpleDateFormat("hh:mm:ss YYYY/mm/dd", Locale.US);
date = simpleDateFormat.format(new Date());
bundle.putString("mKey", date);
message.setData(bundle);
handler.sendMessage(message);
}
}
}
}).start();
}
試してみてください。.. runOnUiThread whileループ無期限に実行aは1秒間睡眠のためのスレッドを左:
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(updateTime);
}
});
使用runOnUiThreadとのThread.sleepのためのトライキャッチ(1000)
int i;
while(true)
{
try {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
textView.setText(updateTime);
}
});
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
で囲みます
を試してみてください。 –