0

これは簡単な答えだと思いますが、それは私を夢中にさせ、誰かが私の悲惨さから私を追い出してくれることを願っています。

私はAndroidのアクティビティ、ウィジェット、サービスを持っています。サービスは、設定された時間または継続的に、バックグラウンドでサウンドを実行します。停止するまでサウンドを実行したいので、サービスにstopSelf()メソッドがありません。startServiceをプレイ中に、stopServiceを停止時に持っていたので、これはすべて問題なく、アクティビティにダンディでした。今、私はこの最新のアップデートでウィジェットを投げたいと思います。だからここで私は立ち往生しています。放送受信機なので、できることは非常に限られています。context.stopServiceを呼び出すことはできますが、ボタンが押されたときにのみサービスを停止したいと思います。私はpendingIntentでonClickListenerを設定する方法しか見つけることができません。

私のサービスのonStartCommand()メソッドでは、着信インテントから余分な「ループ」を読み取ります。そこで、ゼロの値を渡してみましたが、何らかの理由で読み取れないようです。音楽が再生されているため、サービスでonStartCommand()が呼び出されていることはわかっていますが、インテントに追加で何をスローしても、それを読み取っていないようで、理由がわかりません。だから私の質問は、ウィジェットのボタンからサービスを停止するために使用するための最良の戦略は何ですか?簡単な答えだといいのですが、そうでなければ、ボタンのクリックを処理する新しいアクティビティやブロードキャストレシーバーを作成できると思いますが、それは不要のようです。アドバイスをいただければ幸いです。ありがとう!

4

1 に答える 1

1

ウィジェットのPendingIntentボタンに渡すと、他のインテントと同じようにインテントエクストラをサービスに送信できる必要があります。インテントを検出しonStartCommandて、サービスにサウンドを停止して自身を停止するように指示できる必要があります。コードがないと、他に何が間違っているのかわかりません。

于 2011-07-14T13:39:59.290 に答える