我正在使用intent过滤器深度链接到另一个应用程序,同时传递数据查询字符串语法如下:
myappscheme://com.domain.myappname/receivingIntent?data=MY_DATA_HERE
这按预期工作。由于我在查询字符串中传递数据,我想知道是否有跟随URL scheme (GET query string limits)的大小限制
思想应用程序与浏览器不同,我只想确定是否有任何限制。我确实通过Deep linking / 上的android文档,但没有提到大小。
P.S:
发布我自己未经验证的答案,因为我没有进一步开展这项活动。
正如Simon上面的评论,根据Android doc对捆绑大小的限制
通过intent发送数据时,应小心将数据大小限制为几KB。发送过多数据可能导致系统抛出TransactionTooLargeException异常。
来自:https://developer.android.com/guide/components/activities/parcelables-and-bundles
在远程过程调用期间,调用的参数和返回值将作为存储在Binder事务缓冲区中的Parcel对象传输。如果参数或返回值太大而不适合事务缓冲区,则调用将失败并抛出TransactionTooLargeException。
Binder事务缓冲区具有有限的固定大小,当前为1Mb,由进程正在进行的所有事务共享。因此,即使大多数单个事务的大小适中,当有许多事务正在进行时,也会抛出此异常。
来自:https://developer.android.com/reference/android/os/TransactionTooLargeException