誰かがこれを手伝ってくれることを願っています..私には奇妙な問題のように思えます..Androidアクティビティライフサイクルの理解が吹き飛ばされたので、ここで私の心は少し脈打っています..物事をより明確にしようとしましょう.
問題: アクティビティで GridView を設定するために使用するカスタム アダプター (拡張 BaseAdapter) の 'getView' メソッド中に 'StaleDataException' を受け取ります。これまでのところ、簡単に聞こえます..最初にアクティビティに入ると、アダプターは期待どおりに機能し、グリッドにデータが入力されています。ユーザーが写真を撮れるようにするためにインテントを起動するアクティビティにボタンがあり、画像をデータベースに保存する「onActivityResult」を介して戻ってきます。これもすべて機能しました。実際、最初にその部分を書き、その後にアダプターとグリッドビューを追加しました。
写真を撮るためにカメラに行ったときに StaleDataException が発生し、[OK] をクリックして戻ります...アクティビティのほとんどのイベントに多くの Log ステートメントがあり、非常に奇妙なことに、いずれかの前に StaleDataException が発生しています。これらのイベントはトリガーされます... OnActivityResult/OnResume などの前に
SO 私は、アクティビティに適切に戻る前、および onActivityResult/OnResume が呼び出される前に、なぜアダプターがアクセスされているのかについて非常に混乱しています..
例外に至るまでのステップをデバッグすると、すべてこの行で発生します。
String contentType = dataCursor.getString(dataCursor.getColumnIndexOrThrow(DbStatics.ACCIDENTS_MEDIA_KEY_TYPE));
また、私を困惑させているのは、dataCursor が実際に Open であり、最初の呼び出し (getColumnIndexOrThrow) も値を返していることです。そのため、例外につながる getString() です。
それで、それが十分に明確であることを願っています...そして、誰かが何が起こっているのかについて何らかの光を当てることができることを本当に願っています..
どうもありがとう、