Dルートで行こう

ハック日記

SharePreferenceはいつ保存されるのだろう -2

二三週間前にこんな記事を書いた。

SharedPreferencesがいつ保存されているのだろう - 初心者プログラマーの書き連ね

 

そのままSharePreferenceはもう仕様として放置しておこうと思ったのだが、どうしても直したく(ユーザがインストールしていきなり落ちるなんて。。。いやでしょ)

 

コードを見てみることにした。

 

Class CallBackActivityの中にclass BackSaveを書いていてそこでデータベースの処理を書き連ね、ローカルにもSharePreferenceでツイッターの情報を格納している。

 

どうもこのBackSaveがうまく動いていないらしかった。

よくよく考えてみると別スレッドでデータベース通信を行っている間、OnCreate最下層までいき、自動でMainActivityにもどしているのが原因なんじゃないかと思って簡単に書き直した。

 

いわばスレッド同期の話だが

(大略

 Thread a = Thread(BackSave);

BackSave.join()

 

で通信が終わるまで待っておいてSharePreferenceでちゃんと情報を格納してからMainActivityに戻るようにしたわけだ。

 

Good byebye Crash bug