【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して渡すことにしました。
関連記事
-
【android】処理時間を計測する
パフォーマンスのリファクタリングを行うには処理時間の計測がかかせません。 SDK標準のクラスを使っ
-
[android] モンキーテスト(Monkey Test)を実行する
最近テストの効率化に目覚めました。 モンキーテストは猿にアプリを渡してみてめちゃくちゃな操作をさせ
-
【android】非同期処理
Androidで非同期処理、マルチスレッドを処理するスニペット。 AndroidのスレッドはUIス
-
[android] JSONのパースにかかる時間
リストデータなんかを保存したいというのはよくある要件だと思います。 DBは面倒だしカラム毎に集計す
-
【android】 setOnClickListener(false)が効かない
間違いその1 OnClickListenerが登録されているViewにsetClickable
-
【android】リソースからいろいろ取得する
リソースで定義したいろいろをコード内で呼び出す方法です。 レイアウト //リソースからレ
-
【android】アニメーション
Viewにアニメーションを付加する方法です。 目次 アニメーションの実行 de
-
【android】DrawableとBitmap、リソースの相互変換
Resource → Bitmap Bitmap bm = BitmapFactory.dec
-
【andoid】ViewPagerを使う
1. layout.xmlにViewPagerを配置 2. PagerAdapter.jav