0

私は、位置リスナーとセンサー リスナーの両方をアタッチするアプリケーションを作成して、それらからの変更をファイルに記録できるようにしています。

奇妙なのは、アプリケーションを使用している電話の 1 つが一部の例で強制終了だったことです。これを向きの変更に絞り込みました。録音中に電話の向きが変わった場合、アクティビティ内に「mSensorManager」として保存した SensorManager 属性は次のようになります。 null に設定します。

これは私の質問につながります: 設計上の選択が悪いため、SensorManager 参照を保存すべきではありませんか? または、それを使用する前に参照が null かどうかを確認する必要がありますか?

編集:追加する2つのこと:

  1. 加速度計と磁力計の属性も無効化されているだけでなく (これは理にかなっています)、locationmanager (向きの決定とは関係がないため、あまり変化しません) も無効になっていることがわかりました。

  2. これらの属性をアクティビティ以外の何かに保存する必要がありますか?

それは私のために何をしましたか: アクティビティのライフサイクル内から行われるように、リスナー、マネージャー、およびセンサーのインスタンス化を修正しました。その後、唯一の問題は破壊されたウェイクロックにありましたが、向きの変更を維持する必要がありました. 別のフェーズではありますが、アクティビティのライフサイクル中にも取得されるように変更しました。

4

2 に答える 2

1
  1. マニフェストのアクティビティタグ内にこの行を追加してから試してください

     android:configChanges="orientation|keyboardHidden"
    

    onCreateそのアクティビティに対して向きの変更が呼び出されるため、無効になっていると思います

  2. 共有設定を使用して値を保存してみてください
于 2012-12-11T12:21:51.927 に答える
0

私にとって何ができたのか:アクティビティのライフサイクル内から実行されるリスナー、マネージャー、センサーのインスタンス化を修正しました。それから唯一の問題は、破壊されたウェイクロックにありましたが、私は向きの変更を維持する必要がありました。フェーズは異なりますが、アクティビティのライフサイクルでも取得するように変更しました。

于 2012-12-21T16:12:41.083 に答える