0
A
回答
4
取决于你愿意跟踪什么。
的BundleTracker跟踪包,请参阅:
- http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/BundleTracker.html
- http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/BundleTrackerCustomizer.html
而且ServiceTracker的跟踪服务实例,请参见:
- http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/ServiceTracker.html
- http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/ServiceTrackerCustomizer.html
所以,很显然,如果你有兴趣在什么捆包带发生,您使用BundleTracker。如果你对服务实例感兴趣,你可以使用ServiceTracker。
0
说得很简单: 包是罐子。您可以跟踪它是否已安装,成功启动,尚未启动等。
一个包可以发布零个或多个服务。 OSGi术语中的服务是活动java对象,它为您提供了执行某些操作的方法。即使软件包在那里,其服务可能已经消失(例如,因为软件包已停止;或已安装但尚未启动)。即使捆绑包处于ACTIVE状态,它仍然可能在等待某种条件以提供其服务 - 它完全取决于绑定决定,当它注册和取消注册其服务时。
在最典型的情况下,您的代码可以与服务一起工作 - 例如,你得到LogService并调用它的log()方法。因此,在99%的情况下,您应该对ServiceListener感兴趣(或者,更好的方式是使用ServiceTracker,它也是如此,但是会为您处理一些典型的同步缺陷)。
希望这有助于:)
相关问题
- 1. 何时使用ServiceTracker vs ServiceReference
- 2. ServiceTracker发现的服务
- 3. 什么时候ServiceTracker取消ServiceReference?
- 4. ServiceTracker的不为了找到一个现有服务
- 5. 如何高效地使用ServiceTracker来使用多个服务?
- 6. vs vs 2008 vs vs 2010
- 7. Exec的VS ExecWait VS ExecShell VS nsExec :: Exec的VS nsExec :: ExecToLog VS nsExec :: ExecToStack VS ExecDos VS ExeCmd
- 8. CGL vs AGL vs OpenGL vs NSOpenGL vs CoreAnimation(CALayer)
- 9. VS VS VS VS 11中的MVC测试
- 10. MobileNet VS SqueezeNet VS ResNet50 VS启V3 VS VGG16
- 11. NTOSKRNL.EXE VS NTKRNLMP.EXE VS NTKRNLPA.EXE VS NTKRPAMP.EXE
- 12. .NET vs ASP.NET vs CLR vs ASP
- 13. JRuby:import vs include vs java_import vs include_class
- 14. codendi vs redmine vs Retrospectiva vs trac
- 15. inline vs __inline vs __inline__ vs __forceinline?
- 16. VS 2008 vs VS 2008 Express
- 17. SDI vs MDI vs TDI vs?
- 18. Atomikos vs JOTM vs Bitronix vs?
- 19. RailwayJS vs Geddy vs Express vs Socket.IO
- 20. Quartz.NET vs JAMS vs?
- 21. MPAPI vs MPI.NET vs?
- 22. NetSqlAzMan vs AzMan vs(?????)
- 23. bigtable vs cassandra vs simpledb vs dynamo vs couchdb vs hypertable vs riak vs hbase,他们有什么共同点?
- 24. AsyncTask vs Activity.runOnUiThread()vs Handler.post()
- 25. ivalueconverter vs system.converter vs delegate
- 26. managedQuery()vs context.getContentResolver.query()vs android.provider.something.query()
- 27. Sys.require vs Sys.loadscripts vs Sys.loader
- 28. setOnclickListener VS OnClickListener VS View.OnClickListener
- 29. RhinoMock:Mocks VS StrictMocks VS DynamicMocks
- 30. CURL vs fopen vs fsocketopen?
线索是在名称。它取决于你想跟踪的内容;-) – 2012-07-12 14:56:20
@NeilBartlett好吧,我明白可以通过捆绑定义多个服务? – 2012-07-12 15:06:02
软件包发布零到多个服务。真的,你不应该在这个阶段看这些公用事业。您应该专注于使用服务的简单方法,我推荐使用声明式服务。我还建议收到一本像“OSGi in Action”这样的书,而不是试图通过规范。 – 2012-07-12 15:33:34