【发布时间】:2015-01-23 16:26:08
【问题描述】:
我想在ShipInfoManager 中创建一个回调函数来通知MainActivity 执行一些操作。
如果我将onEvent() 放入Runnable,它就会运行。
但是,如果我这样说,它会显示错误。
有没有办法在加载数据后触发回调?
或者,有没有办法像Android的API的LocatioManger的requestLocationUpdates那样做回调,当数据/变量改变时给出回调?
感谢您的任何回复!
MyCallback 接口:
interface MyCallback {
void callbackCall();
}
ShipInfoManager 类:
public class ShipInfoManager {
Context mContext;
public ShipInfoManager(Context _mContext) {
this.mContext = _mContext;
reloadData();
startTimer();
}
MyCallback callback;
void onEvent() {
callback.callbackCall();
}
private void startTimer() {
/* RUN EVERY MIN */
final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@SuppressWarnings("unchecked")
public void run() {
try {
reloadData();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
};
// TEMP SUSPEND FROM PREVENTING RELOAD //
timer.schedule(doAsynchronousTask, 0, 5000);
}
/* JSON handling and extraction */
private void reloadData() {
//Do sth to reload the data
//After reload, I want to fire the callback
onEvent();
}
}
【问题讨论】:
标签: java android interface callback