В моем приложении для Android я хочу автоматически обновлять каждые 60 секунд. Так что я попытался это так:Черный вид при запуске новой темы
public void refresh_check() {
Thread myThread = new Thread()
{
int counter = 0;
@Override
public void run() {
MyActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
while (counter < 60) {
try {
Thread.sleep(1000);
counter += 1;
System.out.println("Counter: " + counter);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
refresh();
}});
super.run();
}
};
myThread.start();
}
Это работает так, что она печатает счетчик в LogCat, но в моем приложении я получаю черный вид. refresh()
- это просто функция с запросом http, и это работает в одиночку, поэтому ошибка должна быть в потоке в любом месте:/Может ли кто-нибудь помочь?
Зачем вы запускаете его в потоке пользовательского интерфейса? Это заблокирует работу. –
Поскольку функция обновления вызывает некоторые другие функции, которые обновляют Textviews и т. Д. – Phil
Вы можете использовать TextView.post (Runnable) для обновления TextViews вне потока пользовательского интерфейса. Или вы можете использовать AsyncTask для выполнения вашей обработки в doInBackground(), а затем обновить TextViews с результатами в onPostExecute() –