2016-07-15 10 views
0

私は、どのアラームマネージャがアプリケーションに設定されているのか把握しておらず、アプリケーションが閉じられた後にも実行されます。どのように私はすべてのアラームマネージャを実行して殺すように私のアプリでボタンを設定するには?また、いつアンドロイドシステムがアラームマネージャーを殺すのだろうか?androidの追跡をしていないすべてのalarmmanagersを殺す方法

答えて

1

すべてのアラームはシステムごとにトラックされています。将来予定されている時間にそれらをアクティブにする必要があるからです。

アラームをキャンセルするには、アラームを設定するために使用された同じ保留中のインテントを作成する必要があります。保留中の同じ意図は、同じrequestCodeと同じintent(追加なし)を持つことを意味します。その後、アラームマネージャ変数のメソッド.cancel()を呼び出して、そのパラメータにこのインテントを渡します。

Android OSは、電話機がシャットダウンしたときに設定されたすべてのアラームを削除します。これは、あなたがあなたの携帯電話を再び起動したときに、予想された時間に何のアラームも受信しないことを意味します。

+0

ありがとうございます。同じ保留中のインテントを作成してキャンセルすると、同じリクエストコードとインテントを持つすべての保留中のインテントがキャンセルされます(ただし、エクストラは実際のインテントのエクストラに一致する必要はありません)。 – kmindspark

+0

特定のrequestCodeと保留中のインテントを持つアラームは1つのみです。同じ保留インテントとrequestCodeで2つのアラームを作成することはできません。秒は前のものをキャンセルするか、それを更新するか、保留中のインテントの4番目のパラメータとして設定したその他の動作 – Marat

+0

これは、キャンセルメソッドを呼び出して保留中のインテントを渡すと、システムは保留中の同じインテントを持つアラームを探します。それに合ったものは1つだけです。その後、このアラームはキャンセルされます。以前に設定された他のアラームもそこに残ります。 – Marat

関連する問題