2017-11-20 26 views
0

私はサービスからアンドロイドサービスを継承していますが、onStartCommandは戻り値START_STICKYです。サービスは自己実行型サービスであり、誰もそれにバインドしません。私のMainActivityでサービスが開始されましたが、設定中のサービスが実行されていませんでした。

、私はすべてが設定を除いて正常に動作している

Intent startService = new Intent(getApplicationContext(), MyService.class); 
startService(startService); 

使用しています - サービス "ショーキャッシュされたプロセス]タブを実行すると、自分のアプリケーションのためのが、「キャッシュされたバックグラウンド・プロセス」タブのショーには何も示されていません> "使用中のキャッシュされたサービス"。なぜ私は 'キャッシュされたプロセスを表示'タブに表示されていないが、私は他のアプリが表示されていることを確認?

答えて

1

理由は、サービスがアプリケーションと同じプロセスで実行されているためです。マニフェストファイルにandroid:process=":yourServiceName"と設定すると、サービスが新しいプロセスを開始し、サービスが表示されます。あなたのサービスが実際にこの方法

private boolean isMyServiceRunning(Class<?> serviceClass) { 
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
     if (serviceClass.getName().equals(service.service.getClassName())) { 
      return true; 
     } 
    } 
    return false; 
} 
を使用して実行されている場合

また、チェックしますか

関連する問題