トップページ > プログラム > 2015年05月16日 > rlgNtqd6

書き込み順位&時間帯一覧

30 位/201 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000010100002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
359
Androidプログラミング質問スレ revision48 [転載禁止]©2ch.net

書き込みレス一覧

Androidプログラミング質問スレ revision48 [転載禁止]©2ch.net
359 :デフォルトの名無しさん[sage]:2015/05/16(土) 17:57:43.07 ID:rlgNtqd6
最近Androidのアプリ開発を始めた者です。
SharedPreferencesの読み込み・書き込みについて質問があります。
現在私が作成しているアプリでは2つのEventListener()を用いています。
普段は処理タイミングが重なることはないのですが、
ある条件化でほぼ同じタイミングに2つのEventListener()に通知が届きます。
EventListener()内の処理は以下のようなものです。

EventListener_A () {
1.calc()
2.DBに計算結果を格納
}

EventListener_B () {
1.処理
2.calc()
3.DBに計算結果を格納
}

public static void calc () {
1.SharedPreferencesから「計算用数値」の読み込み
2.計算処理(計算結果の算出、計算用数値の算出)
3.「計算用数値」をSharedPreferencesへ書き込み
4.計算結果をreturn
}

期待動作は、AもしくはBのイベント処理が終わってから他方のイベント処理が行われることなのですが、
ログを見ると「1.SharedPreferencesからの読み込み」でAとBが同じ計算用数値を読み込んでいました。

SharedPereferencesの書き込みが終わってから次のcalc()を行うためには
どのような手段を用いれば良いのでしょうか?

初歩的な質問かもしれませんが、よろしくお願い致します。
Androidプログラミング質問スレ revision48 [転載禁止]©2ch.net
366 :359[sage]:2015/05/16(土) 19:12:09.58 ID:rlgNtqd6
皆さん返信ありがとうございます。
SharedPreferencesは同期で行うcommitを用いているのですが、現在のような状態です。
マルチスレッドではないですが、calc()をsynchronizedすることで処理を待たせることは可能でしょうか?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。