我正在创建一个 API,它应该在线程中运行。现在我真的不知道我是否应该在我的 API 中集成/提供后台任务。让它成为线程安全不是问题。
在 Android 中执行线程有很多可能性(IntentServices、 native 线程解决方案、AsyncTask 等)。现在我觉得如果我集成一个后台任务,比方说一个 AsyncTask,使用 API 的开发人员将非常有限地使用它。因为考虑到 f.e.方向发生变化,开发人员应该能够对其做出适当的 react 。而且应该由他来选择如何线程,这样他就可以坚持他的设计。
我应该如何处理以提供最佳的可操作性?提供可以使用或忽略的任务?只是让 API 线程安全,让开发人员在他选择的后台任务中实现 API?
我问的另一个原因是 Android/Java 中的大多数 API 不提供后台任务,而是线程安全的。
是否有关于此的一般规则?
最佳答案
在我看来,除了重负载操作(如网络或文件读取)外,所有 API 操作都必须同步,这些操作应提供需要回调的异步方法。您还必须提供需要为 API 异步回调实现的接口(interface)。
如果 API 由等待和轮询用户输入的总线或服务器样式方法组成,则 API 本身必须不在主线程上运行。它可能应该构建为服务或异步任务。不要忘记在处理程序中保留对主线程的引用以便能够更新 IU。
即使它不是那种类型,我也会在后台线程中构建它并在内部使用 Handler 进行调用。
关于java - 我应该在 API 中集成后台任务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19163366/