Android 带回调的计时器
信息Android 带回调的计时器,android,multithreading,timer,Android,Multithreading,Timer,信息 我有一个类SensorClass,它管理一些传感器 我有一个与方法A()的接口 我有一个tester类TestClass,它使用方法a()实现接口,并将此实现传递给SensorClass。TestClass扩展了活动 目标 每隔X秒,我需要调用存储在SensorClass中的接口的实现方法。这是回拨电话 我不知道方法A()是如何实现的,因此它可以修改其活动的视图 我需要一个计时器,因为我想每隔X秒从SensorClass中存储的接口启动回调执行方法a()。因此,我做了以下工作: 公
- 我有一个类SensorClass,它管理一些传感器
- 我有一个与方法A()的接口
- 我有一个tester类TestClass,它使用方法a()实现接口,并将此实现传递给SensorClass。TestClass扩展了活动
- 每隔X秒,我需要调用存储在SensorClass中的接口的实现方法。这是回拨电话
- 我不知道方法A()是如何实现的,因此它可以修改其活动的视图
- 我需要一个计时器,因为我想每隔X秒从SensorClass中存储的接口启动回调执行方法a()。因此,我做了以下工作:
- 但正如我所说,我不知道A()是如何实现的。我必须在runOnUIThread()中运行该方法,因为它可以修改视图
- 问题:SensorClass不是活动,因此runUnuithRead()将导致错误
我的问题是:如何在一个只从活动接收上下文的类中调用runOnUIThread()?或我的问题还有别的解决办法吗
谢谢。使用handler解决。伟大的工具 public void do (){ final Handler handler = new Handler (); timer.scheduleAtFixedRate (new TimerTask (){ public void run (){ handler.post (new Runnable (){ public void run (){ storedInterface.A (); } }); } }, 0, speed); } 公开作废do(){ 最终处理程序=新处理程序(); timer.scheduleAtFixedRate(新的TimerTask(){ 公开作废运行(){ handler.post(新的可运行(){ 公开作废运行(){ storedInterface.A(); } }); } },0,速度); } private void startCallback (){ runOnUiThread (new Runnable (){ public void run (){ storedInterface.A (); } }); } public void do (){ timer.scheduleAtFixedRate (new TimerTask (){ public void run (){ startCallback (); } }, 0, speed); } public void do (){ final Handler handler = new Handler (); timer.scheduleAtFixedRate (new TimerTask (){ public void run (){ handler.post (new Runnable (){ public void run (){ storedInterface.A (); } }); } }, 0, speed); }