不断更新列表项

时间:2013-09-17 03:33:13

标签: android android-listview android-lifecycle android-handler

如何在Android中的列表视图中不断更新列表项?

我有一项监控正在进行的交易进度的活动。当我加载进度视图时,它会在创建时捕获状态,但我自然希望更新它。

我尝试了this answer,但这会创建一个代码块,即使活动不在焦点也会不断执行。

也许有一些我不知道的动态列表视图适配器?

1 个答案:

答案 0 :(得分:2)

链接的答案大部分都很好,只需稍微调整一下就可以防止它在onPause()之后运行:

private boolean mRunning;

Handler mHandler = new Handler();

Runnable mUpdater = new Runnable() {
    @Override
    public void run() {
        // check if still in focus
        if (!mRunning) return;

        // upadte your list view

        // schedule next run
        mHandler.postDelayed(this, 500); // set time here to refresh views
    }
};

@Override
protected void onResume() {
    super.onResume();
    mRunning = true;
    // start first run by hand
    mHandler.post(mUpdater);
}

@Override
protected void onPause() {
    super.onPause();
    mRunning= false;
}