长时间运行任务的活动

时间:2014-03-10 14:22:01

标签: android android-asynctask android-service otto

我正在开发一个Android应用程序,它可以执行由用户调用或由Alarm安排的长时间运行任务。

我在Activity中设计了它 - >服务 - > AsyncTask形式的调用。

我使用Otto库将UI更新直接从AsyncTask引入活动。

我有两个问题:
1我是否有理由使用Otto从AsyncTask进行通信 - >服务然后来自服务 - >活动。我见过很多应用都使用这种模式。

2我应该何时在前台运行该服务?不被低记忆杀死的论点可能被滥用。我想做出有意识的决定。我相信它应该在用户手动调用时在前台运行,而不是在由Alarm启动时运行。

1 个答案:

答案 0 :(得分:1)

  

我使用Otto库直接从AsyncTask中获取UI更新   活动。

请注意,事件总线可能会也可能不会按顺序(前/后)传递事件。此外,使用Otto,您可以在另一个线程的主线程上发布事件。所以一个简单的runnable可以取代AsyncTask。

  

1我是否有理由使用Otto进行通讯   AsyncTask - >服务然后来自服务 - >活动。我见过   很多应用都使用这种模式。

一些客户 - >服务 - >执行者队列 - >型号/数据更改 - >广播奥托活动 - >感兴趣的客户从模型/数据更新他们的观点。

  

2我应该何时在前台运行该服务?不是的论点   被低记忆杀死可能会被滥用。我想要有意识   决策。我相信它应该在用户调用时在前台运行   手动而非被警报踢的时候。

服务应该能够在重新启动后继续存在。在启动时它会检查队列中的待处理任务并恢复它们。它应该在没有待处理任务时关闭。它应该在发布新任务时开始。