4

Messenger をメンバー変数として格納し、onBind(Intent) でmessenger.getBinder() を返すサービスがあります。私はこのサービスに次のように接続しています:

void Bind()
{
    Intent intent = new Intent("com.example.RemoteBindingService");
    bindService(intent, mServiceConnection,
            Context.BIND_AUTO_CREATE); // Context.BIND_AUTO_CREATE
                                       // means
                                       // "start if not started"

    mBound = true;
}

Bind() を呼び出す前に、メッセージをサービスに送信しても何も起こりません。Bind() を呼び出した後、サービスへのメッセージの送信は正しく機能します。ただし、電話した後は

void Unbind()
{
    if(mBound == true)
    {
        unbindService(mServiceConnection);
        mBound = false;
    }
}

メッセージをサービスに送信しても何も起こらないということです。ただし、そうではありません。サービスは機能し続けます。サービスから適切に切断する方法を誰か説明できますか?

4

1 に答える 1

0

startService() でサービスを開始したと仮定します。これは、バインドされたサービスである場合、最後のアクティビティがサービスからバインド解除されると強制終了されるためです。

あなたはそれを止めることができます

于 2013-10-02T12:03:31.583 に答える