0

タスクを複数回実行する必要があります。タスクは、別のアプリによってインターセプトされるインテントをブロードキャストすることです。アプリの送信者から受信者へとしましょう。Receiverアプリでインテントを受信することは正常に機能しています。私はテストし、保証しました。

これを行う方法は、SenderアプリでアクションSENDER_ACTIONを使用してブロードキャストレシーバーを作成したことです。このアクションでインテントを作成し、キーfrequencyと値でエクストラを設定します4。これからPendingIntentを取得し、10秒のアラームを設定して、このインテントを起動します。

アイデアは、送信者アプリがこのインテントを受け取り、RECEIVERアプリに必要なインテントを起動し、頻度値を1減らして、再度インテントに設定し、保留中のインテントとアラームを作成して、再度起動するというものです。

したがって、理想的には、この頻度のカウンターは0に到達し、プロセスが終了する必要があります。

頻度の減少値を設定している間、それは(ログで)起こっていることがわかりますが、同じ変更されていない値を受け取ったとき。

保留中のインテントインスタンスが何度も何度も起動され続けているのではないかと思います。なぜこれが起こっているのか、誰かが私を助けてくれますか?

4

1 に答える 1

5

ソースコードを提供していないので推測しなければならない場合は、正しいフラグを(またはインスタンスを取得するためにgetBroadcast()使用しているファクトリメソッドに) 渡していないためです。デフォルトでは、Androidはオブジェクトをキャッシュし、内部エクストラを変更せずに再利用することに注意してください。への最後のパラメータとして渡すことを検討してください。PendingIntentPendingIntentPendingIntentIntentFLAG_UPDATE_CURRENTgetBroadcast()

于 2013-01-12T13:58:36.043 に答える