【android】 Android4.1のserviceでdefaultPreferenceがおかしい
公開日:
:
android
【現象】
ActivityでdefaultPreferencesで保存したデータがservice内で取得したdefaultPreferencesから取り出せなかった。
下記のような流れがあったときに1と2で同じログが吐かれてdefaultPreferencesで書いたデータが反映されてない様子。
2.3では期待通り動作したので、バグか使用変更か、はたまた機種依存か、最近この手の動作違いに苦労させられます。
【コード】
MainActivity.java
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor editor = sp.edit(); editor.putBoolean("hoge", "poyo1"); editor.commit(); startService(intent); //ここでService.javaからログにpoyo1と出力してほしい --1 SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); Editor editor = sp.edit(); editor.putBoolean("hoge", "poyo2"); editor.commit(); startService(intent); //ここでService.javaからログにpoyo2と出力してほしい --2
MyService.java
@Override public int onStartCommand(Intent intent, int flags, int startId){ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(con); String val = sp.getString("hoge", "def"); Log.v(TAG, val); return super.onStartCommand(intent, flags, startId); }
【結局】
intentにputExExtraして渡すことにしました。
関連記事
-
-
アプリ間連携 Intentfiler
ブラウザの共有からURLを受け取る。 Manifest.xmlのURL受け取り先のactivity
-
-
【android】バイブレーションを使う
必要なファイル MyApp.manifest MyApp.java MyApp.m
-
-
【android】Activityとプロセスのライフサイクル
またもやライフサイクル周りでハマったのですが、Androidのライフサイクルは複雑で困ります。 G
-
-
【android】 年月だけのDatePicker
final DatePicker datePicker = new DatePicker(sel
-
-
【android】標準の設定画面を作る
設定画面のテンプレートです。 検索一発クンのコードから抜粋しました。 チェックボックス、リス
-
-
【android】オーバーレイでトップレイヤーにViewを表示する
常にホーム画面や他のアプリより前面にViewを表示する方法です。 前面に透明のViewGroupを
-
-
【android】スリープモードに入らせない
Androidでは一定時間、操作をしないとスリープモードに入って待機状態になってしまいますが、動
-
-
【android】処理時間を計測する
パフォーマンスのリファクタリングを行うには処理時間の計測がかかせません。 SDK標準のクラスを使っ
-
-
[android] ActivityとFragmentのライフサイクルいろいろ
Fragmentを使い始めてライフサイクル関係でハマることがあったので備忘録。 FragmentA
-
-
【android】複数のカスタムテーマを設定で切り替える
背景色やアプリ全体のテーマ色を設定で変更したいという要望をもらったので実装してみました。