(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]
ピンポイントで「○○の実行状態取得」ってのはなさそう。
「実行中のサービス一覧取得」があるので、リスト内に対象のクラスが含まれてるか確認する手段で。
呼び出し側はContext(Activityとかならthis)と、チェック対象のサービスのClassインスタンスを突っ込めばOK
それにしても RunningServiceInfo#started って何だろう。
IMEなんかがfalseでリストされるけど、trueにしても特に動きがない…
参考
起動中のサービス一覧を取得する - Androidプログラマへの道 〜 Moonlight 明日香 〜 - livedoor Wiki(ウィキ)
「実行中のサービス一覧取得」があるので、リスト内に対象のクラスが含まれてるか確認する手段で。
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(ウィキ)
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