需要帮助为Android应用程序制定架构设计决策

时间:2012-01-09 11:52:38

标签: android architecture

情况

我是Android世界的新手。我正在开始一个新项目来编写一个发送和接收短信的Android应用程序,并与Web服务器同步。 (我稍后会介绍该应用程序)

我首先尝试使用SL4A和python编写应用程序,但它有很多错误(例如发送长短信导致NullPointerException!)

Android的框架非常复杂(至少对我而言)。您有ActivitiesServicesReceiverAsyncTaskIntent等等。我现在真的很困惑,不知道解决这个问题的正确方法。

问题

网络服务器手机

Web服务器知道所有逻辑。它知道应该发送什么SMS消息以及如果移动电话收到消息应该怎么做。因此,手机通过HTTP与服务器通信。

发送消息

手机应该每30秒提取一次应该发送的信息。

  • 如果存在任何未发送的消息,则服务器将使用JSON对象进行响应。
  • 然后,移动设备将发送每条消息并告知服务器消息是否已成功发送。
  • 在电话的UI元素上记录正在发生的事情,(发送了什么消息,手机从服务器获得了什么响应)也很好。

接收消息

当手机收到短信时:

  • 它应告诉服务器
  • 应显示登录屏幕

问题

你能为这个问题建议一个好的架构吗?

我应该创建Service吗?

我应该创建AsyncTask吗?

...

2 个答案:

答案 0 :(得分:1)

使用广播接收器/定期警报最好地为Web服务器提供定期请求 (30秒即可,如果你有电源,否则考虑更长的更新interwals)

要接收短信,您还可以使用广播接收器(因为系统将广播传入短信的意图)

整体状态可以保存在一些单独的java对象中,并考虑持久存储状态(通过,因为你的应用程序可以随时被OS杀死)

记录通过标准记录工具完成的操作系统,以及向用户显示当前状态的一些活动)

答案 1 :(得分:0)

总是很难回答“什么是最好的架构”,但这里有。

SMS /服务器功能听起来像服务的工作,因为它长期运行。

您可能最终还会编写一个活动或一组活动来配置和/或监控服务。