Android java.lang.IllegalArgumentException: サービスが登録されていません

java.lang.IllegalArgumentException: Service not registered

まず、Service が AndroidManifest ファイルに登録されているかどうかを確認します。形式は次のとおりです。

  <service   android:name=".MyService"  ></service>

サービスがすでに登録されている場合でも、このエラーは報告されます。

  1. bindService が失敗した場合は、直接 unbindService を実行します。
  2. unbindService が成功し、unbindService が何度も実行された可能性もあります。

解決:

サービスがバインドされるたびに、ブール値を使用して状態が true として記録されます。
サービスがバインドされていない場合は、ブール値が true かどうかを確認します。true の場合、サービスはキャンセルされ、ブール値は false に設定されます。

これにより、何度サービスをキャンセルしても「サービスが登録されていません」とは報告されません。

サンプルコードは次のとおりです。

1

2

3

4

5

6

7

8

9

10

11

12

13

private boolean mIsBound=false ;

public void doBindService() {

  Intent bindIntent = new Intent(this, MyService.class);

   bindService(bindIntent,connection,BIND_AUTO_CREATE);

    mIsBound = true;

}

  

public void doUnbindService() {

    if (mIsBound) {

        unbindService(mConnection);

        mIsBound = false;

    }

}

転載場所: https://www.cnblogs.com/expiator/p/5719774.html 

おすすめ

転載: blog.csdn.net/weixin_42602900/article/details/131441141