对于普通的页面携值跳转,这是一个很常见的问题,也有很多不同的方式,根据个人喜好所选择的也不尽相同。常见的方式有,1:将参数放入Intent之中,这是我最常使用的一种,简单方便,可以携带任何值,需要注意的一点是,如果你需要传递的不是基本数据类型,所传的值需要实现序列化接口(Serializable)。2:如果你的App中存在这样的变量,使用范围很广,占用的内存很小,可以考虑使用静态常量,这样就不用麻烦的去传递或者说去存取,在一个App还是不要使用太多的静态常量,因为静态常量会一直占用着你的内存直到退出App。3:在页面与Fragment之间传值,通常使用的setArguments这个方法,这是最方便的一种。4:广播的使用,广播可以用于任何场景的传递,但是需要注意的是广播的注册方式分为两类,一类是动态注册,一类是静态注册,动态注册在界面里注册通常在onCreate方法中注册,静态注册是在Mainefest中,动态注册需要注意的地方是,我们所接收广播的界面必须在发送广播之前创建,并且没有被销毁掉。5:回调,这种方式对于新手是最难理解的,当时我接触的时候,看了好多博文,都没能明白,在花了好多时间后,最后还是慢慢明白了回调的用法,关于回调,用起来的确很好用很方便。
对于我个人而言,优先级为Intent、setArguments>回调>广播;对于静态这个需要适合的情况才使用。
那么最后来说说关于今天的问题,在我们使用Intent传值确在接受界面接受不到所传递的值,这种情况和Activity的启动模式有关,当