我在不同活动之间传递状态数据时遇到了麻烦。现在我有四个:
首先,我将此工作流的状态存储在活动A的实例变量中,但大多数时候Android从B返回时有垃圾收集A(可能是因为方向更改)所以我得到空指针异常。然后我尝试将状态存储在一个parcelable对象中,该对象是在B返回A时生成的结果,然后将该对象传递给C.它到达C时很好,但是当我再次从C中分配对象时返回到A它由于某种原因没有到达。当试图将对象从A交给D时,这导致另一个NPE。
最后,需要删除数据:上传后D或者中途关闭应用程序并且不完成所有活动。你将重新开始A(或B,这是一个实际可用的活动)。
到目前为止,我现在的结构感觉比应该更复杂。我认为活动A应该被删除。但我不确定应该在什么地方实施。 另外我不确定如何使活动C可重复2或3次,每次添加数据,然后再转到D.可能的解决方案我发现:
我是Android开发的新手......我可能迟早会让他们所有人都工作,但对我的情况有什么合适的解决方案?
答案 0 :(得分:1)
你应该多关注Activity Lifecycle。在您的情况下,在extras中使用intents and results就足够了。服务和SharedPreferences绝对不是你想要的。对于非常复杂或庞大的数据,扩展应用程序是一个很好的选择,但这看起来不像你的情况。
答案 1 :(得分:1)
您可以使用
android.app.Application class
在您的应用程序中,它是应用程序级别类,它是通过在menifest.xml文件中配置它自动创建的。 您可以通过
访问此类的活动getApplication();
您可以在此课程中设置应用程序级别数据,也可以在一个活动中设置该应用程序级别数据