Intent详解及相关问题

2017-12-27  本文已影响0人  电梯里漫舞

Intent机制详解

1. 传递大小限制 Serializable对象

应该在让Serializable对象的字段类型都实现Serializable接口

2. 传递数据大小限制

Intent在传递数据时,大小限制在1MB。

0-512KB:正常

512-1024KB:出错,闪退。

大于1024KB:报错TransactionTooLargeException。

解决方法:

1)将文件写到临时文件或者数据库中,跳转后在读取。

缺点:由于读写文件较为耗时导致程序运行效率较低。

2)将文件保存在单例或者静态类中,跳转后再去读取。

缺点:在不同进程中无法共享,破坏了程序的独立性。

intent传递大小限制测试

intent传递数据时,数据大小的限制问题

3. singleTask模式的Activity启动

程序逻辑要求把某Activity设置为singleTask模式启动,当Activity已经启动过之后,再通过Intent来启动时,调用getIntent方法得到的还是旧的Intent对象。

再启动时调用的方法为:onNewIntent->onRestart->onStart->onResume

为singleTask模式Activity在多次启动时,会调用onNewIntent(Intent intent)方法,在方法中的intent即为后来传递过来的。

解决方法:

1)对onCreate中的getIntent()和onNewIntent中的intent做相同的处理。

2)在onNewIntent中调用setIntent()方法,再次调用getIntent时就会返回新的Intent对象

当从后台唤醒activity时,getIntent() 无法获取到最新的值 或者为空

上一篇 下一篇

猜你喜欢

热点阅读