質問: android studioについて質問です. 現在加速度センサーの値をボタンを押すことで保存するコードを作っています.
回答: onSensorChangedはセンサーに変化があったとき、アンドロイドのシステムから通知されるものです。 独自でcallする設計は間違っています。 したいことは ボタンを押すとセンサーの記録を開始し もう一度ボタンを押すと、記録を停止する 記録はcsv形式でファイルに書き込む ですよね? なら、 ボタン押下時で 加速度センサーのリスナー登録、解除を制御すれば良いのではないでしょうか? リスナー登録するから onSensorChangedの通知が来るわけなので 最初のボタン押下で、リスナー登録する ⇒onSensorChangedが通知されるようになる ⇒記録されるようになる 次の押下で、リスナー解除する ⇒onSensorChangedが通知されなくなる ⇒記録されない っ感じ 多分リスナー登録は onCreate、onStart、onResumeらへんに書いてるので、そこを削除して ボタンの押下イベントへ リスナー登録解除は onDestroy、onStop、onPauseらへんに書いてるので、そこを削除して ボタンの押下イベントへ あとは今記録中なのかを管理するフラグをつくるか、リスナー分けるかで完成かと ※ アプリが裏に回ってるときの記録をどうするのか?の設計ができてないですが一旦はアプリが表に出てるときの制御を考えましょう