Androidプログラミング質問スレ Part22
■ このスレッドは過去ログ倉庫に格納されています
0657デフォルトの名無しさん
2012/06/08(金) 18:37:28.40スリープ中関連の処理で俺がハマったのは
・スリープ中にメディアプレイヤーが解放されてnull状態の時があるのを考慮していなかった
┗Androidのライフサイクルを把握しきれてなかったのが原因
これが原因で初期化されるであろうと思っている変数に前回の値が生き残り続けてたり
逆に生き残ってるであろうと思っているオブジェクトが死んでたりなどが起こる
・「Listener」「registerListener」「unregisterListener」あたりのコールバック関数の設定・解除が
重複しまくりでおかしくなっていた
┗Androidのライフサイクルを把握しきれてなかったのが原因
×A設定、A設定、A設定 ←ダメな例。例えば1タッチで3回同じ関数が起動されちまう
×A設定、B設定、C解放 ←ダメな例。AとBが残る。復帰時にさらにAとBが宣言され上の重複みたいになる
◎A設定、A解放、B設定、B解放 ←正しい例
・メディアプレイヤーでMP4の高画質再生するとロード時間が凄まじくかかっていた
┗仕様把握が甘かったのが原因。再生ファイルのフォーマットを変更したら直った
・「WakeLock」が想定外の動作をする
┗WakeLockは機種によって動作が変化するというgoogle様のクソ仕様が原因
スリープ関係は結構厄介だとおもうけどがんばってみて
しっかり組めばしっかり動く場合がほとんどだから。
WakeLockだけはだめだけどw
■ このスレッドは過去ログ倉庫に格納されています