问题:原生定时器模拟动态数据回调方法
public void setCallback() {
blueToothHelper = new BlueToothHelper(mUniSDKInstance.getContext());
try {
blueToothHelper.setCallback(new BlueToothHelper.Callback() {
@Override
public void work() {
Map<String, Object> param = new HashMap<>();
param.put("result", "pppp");
mUniSDKInstance.fireGlobalEventCallback("myEvent", param);
}
});
} catch (Exception e) {
Log.i(TAG, "setCallback: "+e.getMessage());
}
}
/*
* 定义回调接口的成员变量
*/
private Callback mCallback;
/*
* 声明回调接口
*/
public interface Callback{
public abstract void work();
}
/*
* 设置回调接口对象成员变量
*/
public void setCallback(Callback callback) {
this.mCallback = callback;
}
/*
* 调用回调接口对象中的方法
*/
private int num = 1;//定时器模拟动态数据变量
public void doWork() {
TimerTask task = new TimerTask() {
@Override
public void run() {
num++;
System.out.println("num:" + num);
mCallback.work();
if (num > 10) {//结束定时器
System.out.println("定时器模拟数据 结束了!!");
System.gc();
cancel();
}
}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1 * 1000;
timer.scheduleAtFixedRate(task, delay, intevalPeriod);
timer.schedule(task, delay);
}