Простой способ обновить пользовательский интерфейс Activity в Android - PullRequest
0 голосов
/ 22 июня 2010

У меня есть простое основное действие с 3 кнопками и фоновая служба, которая запускается при обнаружении соединения Wi-Fi. Моя основная деятельность опрашивает базу данных на onCreate и отображает статус. Что я хочу, так это заставлять Activity перерисовывать текстовое представление каждые несколько секунд. Я не хочу использовать связующие или подключиться к сервису. Просто какой-то простой способ запрашивать у базы каждые несколько секунд статус.

Вот мой код.

mdbHelper.open();
Cursor cursor = mdbHelper.fetchAllArticles();
first = cursor.getCount();
cursor = mdbHelper.fetchAllFeeds();
second = cursor.getCount();
cursor.close();
mdbHelper.close();

myTextView.setText(first + " in articles and "  + second + " in feeds.");

Я не могу обновить myTextView с помощью любого другого метода, кроме onCreate ...

Спасибо!

1 Ответ

2 голосов
/ 22 июня 2010

Вы можете сделать что-то вроде.

private Handler mHandler = new Handler() {
    void handleMessage(Message msg) {
        switch(msg.what) {
            case UPDATE_TEXTVIEW:
            // update the text view;
        }
    }
}

public void onCreate() {
    Thread t = new Thread(new Runnable() {
        void run() {
            mHandler.sendEmptyMessage(UPDATE_TEXTVIEW);
            sleep(5000);
        }
    });
    t.start();
}

Но правильный способ сделать это - заставить службу уведомлять вашу активность, когда запрашивать базу данных. Не рекомендуется запрашивать базу данных каждые несколько секунд, когда в этом нет необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...