日記#307#308

#307 6月2日

今日は少し試してみたが、ダメだった。
onSensorChangeを呼び出すと違うクラスのonSensorChangeを呼び出してしまいややこしいことになってしまうことが分かった。
今まで今の状態で楽してきたのでこれから一新させると考えると少し面倒だ。
できれば共存させたい。

#308 6月3日

アプリが無駄に終了してしまう事象の正体が発覚した。
サービス側のonCreate(初期化部分)に@overrideが付与されていなかったからだった。
これはonCreateの()内にbundleの引数を入れており、それのせいでエラーが出ていたので、@overrideを消しエラーを消したせいである。
解決策として、引数を消して@overrideを付与した。

その後、アラーム機能が繰り返し動作してしまっている事象について、現在時刻より前の時間をアラームとして設定するとアラーム機能がその時間まで起動し続けてしまうことを思い出した。
ちょうどログでセットしたアラームの時間までがマイナス秒で表記されていることはわかったので、マイナス秒になっていたら1日分の時間増加することにした。

ここまでの結果を踏まえて起動したら起動してすぐのアプリ落ちはしなくなったので上手く機能している。
アラーム機能も落ち着いている。
通知も安定している。

それと他に分かったことはサービスでもonSensorChangeで取得できるセンサー値はonStartCommand(サービスを起動させると動作する部分)の後にきていた。
ということは、やはり、積み上げ式で処理が行われているという推測はほぼ確定という認識で良いだろう。
ここから見出した解決策は"もう処理を割り込ませるのは面倒なのでセットするアラームを2つにしよう"だ。
詳細に説明するとセンサー値取得と日付&歩数記録は分けて、
1周目でセンサー値取得し、共有してる変数に格納。
2周目で共有されてる変数を取得してファイルに記録。
という流れにすれば上手くいくだろうと読んでいるという事だ。

この記事が気に入ったらサポートをしてみませんか?