Эта ошибка возникает при попытке доступа к элементам пользовательского интерфейса из любого потока, который не является потоком пользовательского интерфейса.
Чтобы получить доступ / изменить элементы из не-пользовательского интерфейса, используйте runOnUIThread
.
Однако, поскольку вам нужно изменить элемент пользовательского интерфейса из fragment
, runOnUIThread
следует вызывать для фрагментов, обладающих активностью. Вы можете сделать это через getActivity().runOnUIThread()
.
EG:
timer.schedule(new TimerTask() {
@Override
public void run() {
// Your logic here...
// When you need to modify a UI element, do so on the UI thread.
// 'getActivity()' is required as this is being ran from a Fragment.
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// This code will always run on the UI thread, therefore is safe to modify UI elements.
myTextBox.setText("my text");
}
});
}
}, 0, 3000); // End of your timer code.
Для получения дополнительной информации см. Следующую документацию:
getActivity()
]). Multitail доступен для CentOS в репозиториях rpmforge. Чтобы добавить репозиторий rpmforge, проверьте документацию по сторонним репозиториям .
Вы можете смоделировать многоадресную работу, открыв несколько экземпляров tail -f в подокнах Emacs.
Я обычно просто открываю другой xterm и запускаю там отдельный 'tail -f'.
В противном случае, если я использую инструмент 'screen', я настрою отдельный 'tail -f 'там. Мне это не очень нравится, потому что требуется несколько нажатий клавиш, чтобы включить прокрутку на экране перед использованием клавиш Page Up и Page Down. Я предпочитаю просто использовать полосу прокрутки xterm.