我有3项活动。假设A,B,C。主要活动是A。
我想从A开始B然后从B开始C,然后在C打开时关闭B.最后关闭C传递数据到A。
如何使用Intent和startActivityForResult来实现这一点?用后两种方法可以吗?
感谢。
答案 0 :(得分:3)
假设您正在使用按钮,当您单击按钮以启动活动C时,您可以完成活动B,并在活动A中获取操作。
对活动A使用onActivityResult()。在此pont,您可以使用startActivityForResult()启动活动C.
这样,当你完成C时,你可以再次使用onActivityResult()将数据传递给A.
答案 1 :(得分:1)
Renan Lopes Ferreira的回答说明了这一点。欢呼声。
答案 2 :(得分:0)
您始终可以使用Intents从A和C中的B开始B. 当您从堆栈中删除A时,C无法使用startActivityforResult()和onActivityResult直接将数据传递给A. (不是很明显,A甚至不存在于内存中)。 因此,对于A访问C的数据,您必须将C的数据存储在某处,以便A可以在下次启动时访问它。现在,这里的另一个场景是将其存储为持久性或非持久性数据。如果您希望数据是持久的,建议使用共享首选项,数据库等,如果您希望它是非持久性的,那么您可以使用Singleton等。