Android多页面传递问题(1)

好久没有深入接触Android,遇到一个简单的页面传递问题,让我深深的感受到了,自己知识的缺少。

话不多说。正文上。

今天就说的是一个简单的一个多页面问题:

题目如下:

A页面只能启动B页面,且A页面不会finish掉,B页面只能启动C页面,且B页面不会finish掉。

C页面关闭的时候B页面也同时关掉,并且C页面的数据要传递给A页面,并且A页面是不能重新开启的。如图:

下面我们来说下解决方案,解决方案有五种,大家可以根据自己的喜好来选择:

方案1:采用单例模式

把A设置为单例,C启动A页面并把参数给传递进去 采用startactivity来进行启动

如图:

看到红框里面标出的就是采用单例模式

方案2:

采用局部广播来进行数据传递

动态注册广播

如果a启动b的时候a没有finish的话a实际上是没有被销毁的,在后台呢,广播的话只是从后台唤醒了,并不会产生一个新的A

(这个方案我还没有仔细看,好久没有接触广播,所以我还需要看下,之前就一直害怕这种广播机制,不想触碰,但是现在博主是一个打不死的小强,感觉编程其实没有那么可怕,有着一颗学习的心。什么都不怕的节奏,呼呼)、

方案3:把需要传递的数据保存在XML里,在A页面要A的onResume里面取出来。但是现在考虑到一个问题就是,比如页面在运行中,这时突然拍照,或者来电话的时候立马又会走onstop-onresume,会二次运行。所以又需要一个变量。对于稳定性和易用性,不建议使用此方案。

方案4:A写接口,,C页面实现。

方案5:

baseactivity复写 startactivity然后进行关闭

方案6:

eventbus第三方插件

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

方案7:用static变量来进行值的传递

一个小小的问题,可以有这几种解决方案,所以遇到不太把握的问题,多向大家请教,会收到意想不到的结果。

版权声明:本文为博主原创文章,未经博主允许不得转载。

就看你能不能战胜它。战胜了,你就是英雄,就是生活的强者。

Android多页面传递问题(1)

相关文章:

你感兴趣的文章:

标签云: