我有一个Android应用程序,通过供应商提供的库与第三方硬件进行接口。当来自硬件的数据准备好被处理时,该库会回调到我的应用程序。
由于其设计原因,第三方库只向应用程序进行一次回调。然而,当回调被调用时,我的应用程序有几个不同的异步任务需要执行(例如,记录日志、更新UI显示、调用外部程序)。我想办法将事件分散到不同的方法中。所以,我打算在我的Application类中实现这个功能:
由于其设计原因,第三方库只向应用程序进行一次回调。然而,当回调被调用时,我的应用程序有几个不同的异步任务需要执行(例如,记录日志、更新UI显示、调用外部程序)。我想办法将事件分散到不同的方法中。所以,我打算在我的Application类中实现这个功能:
interface MyCallback {
public void doSomething(ArrayList<DataClass>);
}
public class MyApp extends Application {
...
private MyCallback cb;
public void registerCallback (MyCallback callback) {
cb = callback;
}
public methodCalledBy3rdPartyAPIOnData (ArrayList<DataClass> data){
cb.doSomething(ArrayList<DataClass> data);
}
这对于单个方法调用可能有效,但我正在处理如何对一系列回调进行此操作......并确保它们被异步调用的问题。在Android应用程序或Java中一般有没有做这种事情的示例或最佳实践?
observers.remove(observer)
就可以了吧?ArrayList
中最多只会有5-6个项目,并且希望不经常调用,因此性能不是一个大问题。 - chromicant