(2011-05の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2011-05-29 Sun (他の年の同じ日: 2005 2007)

Serviceの起動状態確認
2011-05-29-1 / カテゴリ: [Android] / [permlink]

ピンポイントで「○○の実行状態取得」ってのはなさそう。
「実行中のサービス一覧取得」があるので、リスト内に対象のクラスが含まれてるか確認する手段で。
public boolean isServiceRunning(Context c, Class<?> cls) {
	ActivityManager am = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
	List<RunningServiceInfo> runningService = am.getRunningServices(Integer.MAX_VALUE);
	for (RunningServiceInfo i : runningService) {
		Log.d(TAG, "service: " + i.service.getClassName() + " : " + i.started);
		if (cls.getName().equals(i.service.getClassName())) {
			Log.d(TAG, "running");
			return true;
		}
	}
	return false;
}
こんな感じで。
呼び出し側はContext(Activityとかならthis)と、チェック対象のサービスのClassインスタンスを突っ込めばOK
boolean isRunning = isServiceRunning(this, MyService.class);

それにしても RunningServiceInfo#started って何だろう。
IMEなんかがfalseでリストされるけど、trueにしても特に動きがない…

参考
起動中のサービス一覧を取得する - Androidプログラマへの道 〜 Moonlight 明日香 〜 - livedoor Wiki(ウィキ)
前の日 / 次の日 / 最新 / 2011-05

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12