我的应用程序有一个用于UI的活动和一个用于后台轮询乐趣的服务。看起来像标准票价。
AlarmManager是否可以在没有调用活动OnCreate的情况下触发服务意图?
放置活动和放大器是否有任何好处;服务到不同的应用?这会创建2个apk并且无法将其作为一个应用程序投入市场吗?你能以某种方式将2个申请放入一个清单吗?
关于两者之间的沟通:
- 如果活动&服务是同一个应用程序的一部分 - 我不能只在应用程序范围内存储公共对象(如User对象)以便共享2个?
- 好像我甚至不需要打扰AIDL - 这两个人在应用程序范围内也可能只有弱引用 - 他们可以通过这种方式相互调用方法吗?或者他们应该使用某种观察者模式或BroadcastListener事物互相发布/互相?
答案 0 :(得分:3)
AlarmManager是否可以在没有调用活动OnCreate的情况下触发服务意图?
是
将活动和放大器放在一起有什么好处服务到不同的应用程序?
恕我直言,没有。
这会创建2个apk并且无法将其作为一个应用程序投入市场吗?
是
你能以某种方式将2个应用程序放入一个清单吗?
从纯XML的角度来看,清单中有多个<application>
元素的空间。但是,AFAIK只支持一种。
如果活动&amp;服务是同一个应用程序的一部分 - 我不能只在应用程序范围内存储公共对象(如User对象)以供2分享吗?
对于非常快速的事情,是的。但是,请记住,您的服务可能会被关闭(由Android,用户等),之后您的流程可能会被终止,而您的Application
对象会 poof 。我只将它用于轻缓存。
好像我甚至不需要打扰AIDL
正确 - 只需要进程间服务绑定。
这两个人在应用程序范围内也可能只有弱引用
我不会在一百万年里那样做。请负责任地使用平台。活动和服务有很多方式可以进行通信但仍保持松散耦合(或者,在本地绑定模式的情况下,以Android感知方式紧密耦合)。
或者他们应该用某种Observer Pattern或BroadcastListener东西相互发布/互相?
沿着这些方向的东西会更好。虽然活动和服务可能同时在同一个流程中共存,但它们并非旨在直接相互关联。