我需要设置一个简单的事件侦听器来刷新ListView
偶尔。问题是我不知道如何生成事件。
我知道对于按下按键或按钮之类的事件我只需要实现Handler
。但在这种特定情况下,我实际上需要生成该事件,每当我的应用程序的另一个正在运行的线程醒来并从 RSS 提要刷新其新闻列表时,该事件就会被触发。
我已经做了一切,但还是被困在这里。我可以获得有关如何实施此操作的更多信息吗?
-
定义回调接口
public interface NewsUpdateListener
{
void onNewsUpdate(<News data to be passed>);
}
-
在获取 RSS 提要的后台线程上提供注册工具
class <Background processing class name>
{
....
ArrayList<NewsUpdateListener> listeners = new ArrayList<NewsUpdateListener> ();
....
public void setOnNewsUpdateListener (NewsUpdateListener listener)
{
// Store the listener object
this.listeners.add(listener);
}
....
}
-
当有新闻可用时触发回调
....
for (listener : listeners)
{
listener.onNewsUpdate(<News data to be passed>);
}
....
-
在初始化期间在某处注册监听器
....
<class <Background processing class object>.registerListener
(
new OnNewsUpdateListener() {
onNewsUpdate(<News Data>) {
// process news data
runOnUIThread(new Runnable() {
public void run() {
// refresh list view
}
}
}
}
....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)