我以非常高的速率(超过100个意图/秒)从本机层向Java层发送意图。 如果CPU负载很高,则会在logcat中抛出TransactionTooLargeException,但我无法在本机发送方中将其捕获。
我的意图有大约300字节的小有效负载,事实上,我已经检查过,在第一个异常的那一刻,我有大约1 MB的意图发送但没有收到另一端(在Java中)应用程序)。
这是我的原生发件人代码。
sp<IServiceManager> mServiceManager = defaultServiceManager();
sp<IBinder> mActivityManager = mServiceManager->checkService(String16("activity"));
status_t ret = mActivityManager->transact(BROADCAST_INTENT_TRANSACTION, mData, &mReply, 0);
if (ret == NO_ERROR)
{
int32_t exceptionCode = mReply.readExceptionCode();
if (!exceptionCode)
{
status = true;
}
else
{
ALOGD("exception %d\n", exceptionCode);
}
}
else
{
ALOGD("error: %d", ret);
}