Warning: include(/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74

Warning: include(/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74

Warning: include(): Failed opening '/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php' for inclusion (include_path='.:/usr/local/php/5.4/lib/php') in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74
【Android開発】ソース有り、見えないサービスの死活状況を確認する方法 – Androidアプリつくったった

【Android開発】ソース有り、見えないサービスの死活状況を確認する方法

Androidaサービスの死活確認

見えないサービスを捕まえろ|きちんとできてますかサービスの死活確認

バックグラウンドプロセスのアプリを作ったけど
どうも終了できてないらしい、というのを度々聞いています。
Androidaサービスの死活確認
 
 

サービスの死活状況を確認する方法の実装方法

今回インポートが必要なのは以下の3つです。

Step1 インポート
import java.util.List;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;

 

Step2 対象のActivityに『サービス死活確認』メソッドを定義

以下の関数で指定のサービスの死活確認ができます。
流れとしては
List取得した現在稼働中のサービス一覧に指定のサービスがいるか否かを判定
結果をture/falseで返しています。
 
ちょっと改造すれば、複数のサービスの状況や
サービスの死活を活かしたアプリの開発など応用は効きやすいと思います。
 

/////////////////////////////////////////////////////////////////サービス死活確認
	private static final String mServiceName = (確認対象のサービス).class.getCanonicalName();

	private boolean isServiceRunning() {
	    ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
	    List<RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE);

	    for (RunningServiceInfo info : services) {
	        if (mServiceName.equals(info.service.getClassName())) {
	            return true;
	        }
	    }
	    return false;
	}
/////////////////////////////////////////////////////////////////サービス死活確認

 

Step3 サービスの死活確認を実装

後は確認したい場所に以下のソースを入れます。

/////////////////////////////////////////////////////////////////サービス死活確認
					Log.i("Main", "check"+isServiceRunning());
/////////////////////////////////////////////////////////////////サービス死活確認

 
isServiceRunning()の応用範囲は広いのででバック開発問わず
お役立て頂ければと思います。
 

サービスについては公式ドキュメントで勉強するのが結局一番早い

android service
公式ドキュメントはコチラです。
経験上、バグのほとんどは基本的な事項の漏れです。
こうなっているもんだろうという考えが最も危険です。
 
テクニックの習得の前にまず一読(英語が読めないならソースの確認)
だけでも済ませておきましょう。
 

基本は重要~ライフサイクルをしっかり押さえましょう。~

本当にActivityとService2つのライフサイクルがどんな割り込みがあってもしっかり
コントロールが効くようにしっかり監視できるようにしましょう。

service_lifecycle
 
以上です。
 
参考にあれば幸いです。
 

▼ 関連記事・最近の投稿は記事の下にあります。コチラもご参考ください。

 

About the Author

dhmo
Author:DHMO(ディベロッパー名) 仕事では自社サービス・メディアの開発を行ってます。 趣味でAndroidアプリ製作を行っています。 カラオケではランキングバトルにはまっております。 Mail: dihydromooxide7@gmail.com 

Be the first to comment on "【Android開発】ソース有り、見えないサービスの死活状況を確認する方法"

Leave a comment

Your email address will not be published.


*