我与Realm玩弄,我总是发现Realm.getInstance()在Activity的创建过程中被调用,实例在Activity的destroy中被关闭。我可否知道是否有任何副作用,只有一个实例创建并一直打开,直到应用程序关闭?我可以只在应用程序中调用Realm.getInstance()一次吗?
回答
没有Application onDestroy。 Realm在内部执行必要的缓存操作,因此应尽可能多次调用Realm.getInstance()/ close()。
试图做自己的缓存不会使任何更高效。 )
https://realm.io/docs/java/latest/#controlling-the-lifecycle-of-realm-instances https://realm.io/docs/java/latest/#closing-realm-instances
感谢您的信息,并为我的错误感到抱歉。顺便问一下,我可以再问一个跟进问题吗?正如你提到“多次你想要的”,是否有任何缺点让我在每个数据库操作中调用getInstance()/ close()而不是在Activity onCreate()/ onDestroy()中做? (因为我想让事情与Activity脱钩) – Rice
如果您完全关闭Realm文件(因为我们需要在再次打开它时验证它),并且您的RealmObjects仅在Realm处于打开状态时可用,所以会有小的开销。所以对于每个操作关闭的后台线程都很好。在UI线程中,您最有可能只想在onCreate/onDestroy –
中执行此操作感谢您提供详细信息。 ;) – Rice
- 1. 我可以在我的android应用程序中只使用一个BroadcastReceiver吗?
- 2. Silverlight应用程序可以通过一次调用接收多个回调吗?
- 3. 你可以在Android应用程序中调用python例程吗?
- 4. 我可以只使用NOSQL编写整个应用程序吗?
- 5. AndroidStartServiceOnBoot.class在程序中只被调用一次..但我希望它每次调用
- 6. 我可以在我的应用程序中使用notepad ++ exe吗?
- 7. iPhone应用程序可以调用另一个应用程序吗?
- 8. 我可以从我的应用程序访问另一个应用程序吗?
- 9. 我可以在wpf应用程序中使用silverlight应用程序吗?
- 10. 我可以在JSP中调用本地用户程序吗?
- 11. 我可以远程调试vb6应用程序吗?
- 12. 我可以只更新iOS7的iPhone应用程序吗?
- 13. `puma:restart'调用两次,但我只通过Capistrano在我的部署应用程序上调用它一次?
- 14. 我们可以在应用程序中只绑定一次所有类型的Google Guice模块吗?
- 15. 我可以在CAB WinForms应用程序中托管ASP.NET应用程序吗?
- 16. 同一个Adobe AIR应用程序可以运行多次吗?
- 17. 我可以在Android应用程序中使用Net Dll吗?
- 18. 我可以在Console Delphi应用程序中使用DataModule吗?
- 19. 我可以在4.0应用程序中引用.NET 3.5 .DLL吗?
- 20. 我可以在mvc2应用程序中使用mvc3区域吗?
- 21. 我可以在Mac OSX应用程序中使用UIDocument吗?
- 22. 我可以在GKE中使用StackDriver Trace PHP应用程序吗?
- 23. 我可以在FBML Canavas应用程序中使用fb.ui吗?
- 24. 我可以在iOS应用程序中使用mac dump_syms吗?
- 25. 我们可以在android应用程序中使用UIAutomator吗?
- 26. 我可以在Google App Engine应用程序中使用facelets吗?
- 27. 我们可以在angularjs应用程序中使用event.preventDefault()吗?
- 28. 我可以在ASP.NET应用程序中使用XBAP吗?
- 29. 我可以从我的应用程序中启动android应用程序吗?
- 30. 我们可以从另一个iphone应用程序调用一个iphone应用程序吗?
我的,因为它保持了的getInstance计数器(规格看到:您可以了解如何在这里控制领域实例的生命周期。因此,如果调用X次getInstance(),则必须调用X次close()。所以,我的问题就像我是否可以在应用程序创建中调用一次getInstance(),并在应用程序中删除一次close()。 – Rice