缺省情况下,Guice每次都创建类的一个新的实例对象给需要该类实例的地方 。可以使用Scopes来修改这个缺省行为,Scope允许在一定范围内重用类实例。 Roboguice中常用的有两种:
@Singleton 整个Application生命周期中使 用同一实例对象
@ContextScoped 同一个Context(如Activity)中共享某一实 例对象。
使用Scope 的方法为使用相应的标记,如:
@Singleton public class InMemoryTransactionLog implements TransactionLog { // everything here should be threadsafe! }
或者在Module中使用bind 语句:
bind (TransactionLog.class) .to(InMemoryTransactionLog.class) .in(Singleton.class);
如果使用@Provides,可以有:
@Provides @Singleton TransactionLog provideTransactionLog() { ... }
如果某个类型使用某个你不想使用的Scope标记,可以将其绑定到 Scopes.NO_SCOPE取消这个Scope定义。
查看全套文章:http://www.bianceng.cn/OS/extra/201301/34950.htm
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索对象
, class
, 实例
, 标记
, singleton
scope
roboguice、roboguice3.0 使用、robobinding android、android roboguide、the scopes trial译文,以便于您获取更多的相关知识。