Most the app so far I had created, I fetch the data from Network and store it in a singleton class to share data between Activities, when I'm done with those data, I usually clear those setting it to NULL, its work perfectly well
我的问题是哪种方法更好??
- 使用parcelable
- 写入数据库并查询
- 单例类
什么时候我们需要使用加载器??为什么我们不能通过 Loaders 共享数据??
如果问题重复...请忽略 ??
最佳答案
第一部分的答案
可包裹:
在
Activity
或Fragment
之间传递数据的最佳方式是使用Parcelable
对象。据说它比Serializable
更优化。有几个库/插件可以帮助您创建Parcelable
对象。最近我被提到Parceler, created by John Carl .但是,我个人使用 Android Parcelable code generator by Michal Charmas , IntelliJ IDEA 和 Android Studio 的插件。数据库或 SharedPreferences:
使用 DataBase 或
SharedPreferences
在Activity
或Fragment
之间传递数据听起来很奇怪,因为它们不是设计用于此这样只会造成困惑。单例:
阅读这篇内容丰富的帖子 Singletons are Pathological Liars .
结论:
我推荐 Parcelable
,或者如果您想变得真正懒惰,那就选择 Serializable
(大多数人认为这并不糟糕,但也不是很好)。
不要使用单例、数据库、静态字段等弄乱您的代码。它们会回来困扰您。
第二部分答案:
When exactly we need to use Loaders
加载程序,将是 AsyncTaskLoader
当你使用时,基本上用于我们想要从服务器检索数据(通过 Web API)或在后台执行某些操作的情况。它类似于使用 Thread
或 AsyncTask
但非常强大,因为它不会在屏幕旋转时被破坏,这与这两者不同。
你应该阅读 How to Use Loaders in Android和 Alex Lockwood's posts on Loaders (这是一个由 4 篇文章组成的系列文章。非常详细而且很棒)。
关于android - 获取数据和传递给另一个 Activity 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33013387/