我正在使用Parse SDK制作Android应用。我正在努力的是创建帖子的流程。目前,在我的主要活动中,用户选择发布照片/视频的帖子类型(照片,视频等)并转到下一个名为NewActivity
的活动。在此活动中,用户可以查看照片/视频并编辑帖子的隐私或位置。改变隐私或地方为每个人启动一项新活动。
我遇到的主要问题是在活动之间保留并传递此Post
个对象。
我的第一个(坏)解决方案只是在Bundle中传递带有intent的数据,但是这很快就变得非常混乱,因为我真的需要在活动之间传递Post
对象。我从该解决方案切换到使用名为DataHolder
的单例类。
在每个活动中,我调用DataHolder.getInstance()
,当点击创建帖子按钮时,我通过执行:Post
创建一个新的DataHolder.getInstance().setPost(new Post())
对象。在以下活动中,当用户输入有关帖子的更多信息时,我会设置帖子的属性。
在遇到这个问题之前,这一切都很顺利。当我回到我的应用程序(可能是它被杀死)时,我会得到NullPointerException
,因为Post对象为null。我正在查看Android docs on passing data between activites/services并需要一些帮助。
我应该在这里使用Singleton类模式吗?在活动之间传递此Post
对象的最有效和最简单的方法是什么?我应该使用应用程序单身人士吗?我会使用Parcelable
或Serializable
,但Post
对象是ParseObject
,所以这不是一个选项。我是否应该通过使用Fragments来保护隐私和放置活动(尽管它们有不同的屏幕和不同的操作栏)来完全避免传递数据?我应该使用startActivityForResult
进行隐私和举办活动吗?
答案 0 :(得分:1)
您应该考虑应用程序可能因任何原因随时被杀死并为此做好准备。您可以使用类似会话对象的内容在活动之间进行通信。您可以根据需要经常保存/加载它,这样您就不会有丢失数据的风险。如果您无法序列化实际对象(例如ParseObject),您可以序列化所需的部件以重建它(即将图像保存在临时文件夹中并根据需要加载它)。