android-使用后台服务开发活动的最佳做法

我的应用程序有一个用于UI的活动和一个用于后台轮询的服务.好像是标准票价.

> AlarmManager是否可以在不调用Activity OnCreate的情况下触发服务意图?
>参加活动和活动有什么好处吗?服务进入不同的应用程序?这样会创建2个apk并使其无法作为一个应用程序投放到Market吗?您能以某种方式将2个应用程序放入一个清单吗?
>关于两者之间的通信:

-如果活动&服务是同一应用程序的一部分-我不能仅将通用对象(如用户对象)存储在应用程序范围内以供2共享吗?

-似乎我什至不需要为AIDL烦恼-两者在Application范围内也可以相互引用很弱-并且它们可以以这种方式相互调用方法?还是他们应该使用某种观察者模式或BroadcastListener互相发布/订阅?

解决方法:

Can AlarmManager trigger the Service Intent without Activity OnCreate being called?

是.

Is there any benefit to putting the Activity & Service into different Applications?

恕我直言,不.

Would this create 2 apk’s and make it impossible to put into Market as one app?

是.

Can you put 2 applications into one manifest somehow?

从纯XML的角度来看,清单中有余地可以容纳多个< application>应用程序.元件.但是,对于AFAIK,仅支持一种.

If Activity & Service are part of the same Application – can’t I just store common objects (like User object) at the Application scope for the 2 to share?

对于非常快速的事情,是的.但是,请记住,您的服务可能会被关闭(通过Android,用户等),此后您的进程可能会终止,并且您的Application对象会变得po琐.我只会将其用于光缓存.

It seems like I don’t even need to bother with AIDL

正确-只有进程间服务绑定才需要.

the two could just have weak references to each other at the Application scope as well

我不会在一百万年内这样做.请负责任地使用平台.活动和服务有很多通信方式,但仍然保持松散耦合(或者,在本地绑定模式下,以Android感知的方式紧密耦合).

Or should they pub/sub each other with some kind of Observer Pattern or BroadcastListener thing?

遵循这些原则是可取的.虽然活动和服务可以同时位于同一进程中,但它们并非旨在直接链接在一起.

上一篇:rocksdb hello流程分析之一


下一篇:谷歌浏览器插件开发之 manifest.json 配置说明