具有auth依赖设计方法的Android服务

时间:2014-12-11 10:13:14

标签: android authentication android-service

我想知道即使应用程序被系统杀死(需要无限期运行),运行的Service的良好架构设计也是如此,并且需要用户通过身份验证才能与后端。

例如,一个应用程序会提示您登录,并且经过身份验证后,Service会将您当前的位置通知给服务器。在这种情况下,可能需要使用保存的凭据自动登录。

我预见到一些可能很重要的设计决策:

  • 谁负责身份验证?
  • 谁负责与后端的沟通?在示例中:通知当前用户位置。
  • 如果用户将密码更改为应用程序(例如在网站中)并且Service不知道,则绝对可以接受。但是,当通过应用程序再次登录时,它应该更新其凭据并再次正常运行。

我在这些解决方案中已经考虑过,但可能并不理想:

  1. 应用中的所有服务器通信以及Service都会在必要时使用AlarmManager&唤醒应用。 BroadcastReceiver

  2. 将服务器通信(例如,位置通知)放在Service中,并在更新凭据时通知应用程序的凭据(令牌,无论如何,...尝试进行一些身份验证后端实施不可知)。

  3. AccountManager中实施Account并保持两个组件的独立性。 Service依赖于AccountManager,因此无需处理身份验证,也可以自行完成工作。

  4. 建议的解决方案的优点和不便之处?还有其他方法吗?

    在(1)中,如果与后端的通信非常激烈,我确实会发现WakeLock过于频繁(电池耗尽)的问题。 (3)似乎更孤立,但我没有经验,也不知道缺点。

0 个答案:

没有答案