問題タブ [parcel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
316 参照

java - View.onRestoreInstanceState(Parcelable state)をテストする方法は2つあり、1つは機能し、もう1つはクラッシュします。

onRestoreInstanceStateは、画面の向きを変更し、エミュレーター設定devtools / Development Settings / maxappprocessを変更することでテストできます。maxは1に設定されています。onRestoreInstanceStateは画面の向きで機能しますが、最大アプリプロセスを1に設定してアプリを再起動するとクラッシュします。Debug.waitForDebugger();を使用しました。1に設定された最大アプリプロセスのデバッガーを接続します。

ビューでは、解析可能ファイルが保存され、再帰的に復元されます。

復元:

保存:

0 投票する
2 に答える
2604 参照

android - Androidのネストされたオブジェクトのパーセリング

インテントでネストされたオブジェクトをどのようにパーセルできますか? .
たとえば、1 つの文字列変数と別のオブジェクト B を含むオブジェクト A があるとします。現在、B にはオブジェクト C が含まれています。C には文字列のリストが含まれます。どうすればオブジェクト A をインテントでパーセルできますか。
これに関する任意の助けをいただければ幸いです。
前もって感謝します。

実装:

クラスCのparcelableの書き方.私は使用しています

読むために:

しかし、それは機能していません

0 投票する
2 に答える
1813 参照

android - 通知パーセルのマーシャリング

Notification オブジェクトをファイルに書き込もうとしています。私が見つけた最良の方法は、オブジェクトをパーセルに書き込み、そのパーセルをマーシャリングして byte[] を取得し、それをファイルに書き込むことでした。

ただし、パーセルをマーシャリングしようとすると、ランタイム例外が発生します。「Binder オブジェクトを含むパーセルをマーシャリングしようとしました。」

Notification オブジェクトをファイルに書き込むより良い方法はありますか? それ以外の場合、このアプローチを機能させるにはどうすればよいですか?

0 投票する
2 に答える
24047 参照

android - android.os.BadParcelableException: Unmarshalling 時の ClassNotFoundException: 例外

値が渡され、実行は適切に行われますが、これらが logcat でスローされているのが見えます。これらを排除したいです。古いフォーラムを確認しましたが、具体的には何もありません。コードを以下に投稿しています。なぜこの問題が発生するのか教えてください。発生する

繰り返しスローされている例外は : ですが、これは実行を妨げません

0 投票する
0 に答える
609 参照

android - Android Bundle.containsKey が例外をスローする

私はAndroidアプリケーションを書いています。このアプリでは、ユーザーは将来通知を受信できる必要があります。AlarmManager を使用してブロードキャストをレシーバーに送信しています。レシーバーには、Intent があり、通知が Parceled Extra として含まれています。ここにコード全体を載せたくないので (かなり)、ワークフローだけを説明し、関連するコードをここに載せます。

通知を拡張して、自分のモデル (モデルはパーセル可能) から ID とオブジェクトを取得できるようにしました。モデルの前に、通知がパーセル化およびアンパーセル化されるように注意します。

アラームを送信するには、新しい通知インスタンスを作成setLatestEventInfoし、モデルからのデータを呼び出します。この通知を直接プッシュすると、すべて問題ありません。

その後、新しい Pending-Broadcast-Intent を作成します。ブロードキャスト内に配置されたインテントは、私の通知を ParcelableExtra として受け取ります。次に、その PendingIntent を AlarmManager.set() 経由で起動します。時間が来たら、BroadcastReciever でブロードキャストを受信します。

私はインテントからエクストラを取得し、それを保存するために使用したキー「NotificationExtra」があるかどうかを確認したいと思います。その呼び出しで、ClassCastException が発生します。いくつかのコード サンプルに興味がある場合は、お気軽にお問い合わせください。何がうまくいかないのでしょうか?null 値を Parcelables として保存できますか? また、null 値を格納できれば、正しく読み取ることができますか?

0 投票する
2 に答える
1851 参照

android - Parcel.readStringArray() の配列の大きさを知るにはどうすればよいですか?

これを行うと、null ポインター例外が発生します。

最初に配列を割り当てる必要があるようです。しかし、それをどのくらいの大きさにするかをどうやって知るのですか?最初にサイズを書いてから、最初にサイズを読む必要がありますか? そしてwriteStringArray()、私のためにこれを処理する方法を持つことのポイントではありませんか?

Android ドキュメントから:

プリミティブ オブジェクトの生の配列の読み取りと書き込みにはさまざまな方法がありますが、通常は 4 バイト長の後にプリミティブ データ項目が書き込まれます。

したがって、カウントを自分で書き込むと、2 回書き込まれます。私がこれを管理する責任を負わない場合、何らかの方法でこれを行う必要があります。

0 投票する
2 に答える
4843 参照

android - Parcel.readBooleanArray()の使用方法は?

android.os.ParcelのreadBooleanArrayを使用しようとしていますが、readBooleanArrayはvoidを返すため、このメソッドの使用方法がわかりません。

パーセルに何かを書き込むために、次のメソッドを使用しています。

この値は、Parcelableコンストラクターでどのように取得する必要がありますか?

0 投票する
2 に答える
15618 参照

android - 方法: Android でビットマップをパーセルする

ビットマップを追加したい直列化されたクラスがありますが、ビットマップは直列化をサポートしていません。

代わりに、代わりに小包を使用すると思いましたが、機能しません。

ローカル変数を使用したテスト コードを次に示します。

上記の最後の行で次のエラーが発生します。

0 投票する
2 に答える
8199 参照

android - Android でカスタム Java オブジェクトを Parcelable にする

MyCustomObjectタイプのオブジェクトをインテント経由で別のアクティビティに送信しようとしています。クラスを Parcelable にするには を実行する必要があることはわかっていますがpublic class MyCustomObject implements Parcelable、カスタム オブジェクト配列が Parcelable でどのように機能するかはわかりません。これが私がこれまでに得たものです..また、 Search クラスも Parcelable を実装する必要がありますか?

これが私の更新された答えですintent.getParcelableExtra(search)。検索配列を適切に作成していない可能性がありますか?

0 投票する
3 に答える
9912 参照

android - ビットマップをバンドルに入れる

AIDLを使用して文字列とビットマップをサービスに渡したい。サービスはこのAIDLメソッドを実装します。

私の場合、バンドルには文字列とビットマップが含まれています。

呼び出し元のアプリケーション(クライアント)のコードは次のとおりです。

サービス側には、次のコードを持つButtonComponentクラスがあります。

ButtonComponentを作成した後、サービスはButtonComponentオブジェクトのテキストとアイコンを使用してボタンを作成します。

その結果、ボタンは正しいテキストで表示され、アイコンのスペースは表示されますが、実際のビットマップは描画されません(つまり、テキストの左側に空のスペースがあります)。

この方法でビットマップをバンドルに入れるのは正しいですか?

パーセル(バンドルではなく)を使用する必要がある場合、テキストとアイコンを一緒に保つためにAIDLメソッドで単一の「データ」引数を維持する方法はありますか?

副次的な質問:バンドルとパーセルのどちらを使用するかを決定するにはどうすればよいですか?

どうもありがとう。