強制終了を回避するためのインテント putExtra() メソッドの最大長の決定
問題:
Android Intent オブジェクトを介して別のアクティビティにデータを渡そうとすると、アプリケーションが強制終了します。この問題は一部のデバイスで発生しますが、他のデバイスでは発生しません。
コード分析:
アプリケーションは WebChromeClient クラスの onConsoleMessage() メソッドを呼び出し、HTML コンテンツを別のアクティビティ (ReadDataActivity) に送信します。インテント オブジェクトの putExtra() メソッドを使用します。
考えられる原因:
強制終了は、インテントの追加データの最大長制限を超えることが原因である可能性があります。経験によれば、Android では、プロセス間通信 (IPC) のインテントに最大 1MB のデータをバンドルできます。
解決策:
この問題を解決するには、HTML コンテンツを一時ファイルに保存し、ファイルのパスまたは URI のみを ReadDataActivity に渡すことを検討してください。 2 番目のアクティビティでは、ファイルからコンテンツを読み取り、必要な操作を実行し、ファイルを削除します。
代替アプローチ:
デバッグのヒント:
以上がIntent.putExtra() で大量のデータを渡すと Android アプリが強制終了するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。