*

【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して渡すことにしました。

関連記事

no image

【android】処理時間を計測する

パフォーマンスのリファクタリングを行うには処理時間の計測がかかせません。 SDK標準のクラスを使っ

記事を読む

no image

インテント

基本 //任意のアクティビティの起動 Intent intent = new

記事を読む

no image

【android】非同期処理

Androidで非同期処理、マルチスレッドを処理するスニペット。 AndroidのスレッドはUIス

記事を読む

no image

[android] モンキーテスト(Monkey Test)を実行する

最近テストの効率化に目覚めました。 モンキーテストは猿にアプリを渡してみてめちゃくちゃな操作をさせ

記事を読む

no image

【android】バイブレーションを使う

必要なファイル MyApp.manifest MyApp.java MyApp.m

記事を読む

no image

【android】ハードウェアキー入力を検出する

Activityを継承したクラスで下記を記述します。 public boolean

記事を読む

no image

【android】 APIバージョンによる動作の違い

「最近使用したアプリケーション」からの起動 2.x系 -> onNewIntentが呼ばれる 4

記事を読む

no image

【android】 年月だけのDatePicker

final DatePicker datePicker = new DatePicker(sel

記事を読む

no image

【android】リソースからいろいろ取得する

リソースで定義したいろいろをコード内で呼び出す方法です。 レイアウト //リソースからレ

記事を読む

no image

【android】任意のスレッドで処理を行う

非UIスレッドでUIを操作したい場合に、任意の処理をUIスレッド上で実行する。 目次

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

no image
知らないと損をする6つのライセンスまとめ

オープンソースやフリーウェア、フリー素材などが巷に溢れ、それらを利用す

no image
ガリレオ:ニュースブラウザをリリースしました。

概要 ガリレオはニュースを読んだり、検索する機能に特化したブラウザア

no image
【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサ

→もっと見る

PAGE TOP ↑