2012-06-13 10 views
5

これはかなり古い質問ですが、率直にも私はまだ私の好奇心を満たす方法で答えを見つけています。laymansを求めている保留中の意図の説明

あなたの前に、アンドロイドデベロッパーのリファレンスに飛び込んでテキストを貼り付けてください。私は既にIntent/Pending Intentのドキュメントを読んでいますが、まだ私の混乱を解決しています。

インテントモデルがアンドロイドシステムの中核であり、非常に一般的なものであることは私には驚きです。このことから、私がその使用法を見てきた例は、多種多様である傾向があります。このバリエーションは、私が習得しようとしている概念を難読化し、それはイライラしています。

私の質問は簡単に書かれていますが、簡単に説明するのは難しいかもしれません。インテントは他のアクティビティへのメッセージであり、他のアクティビティはマニフェストへの関心を宣言できます。保留中の意図、意図のラッパー、私を混乱させる。

  1. 権限とトークンを参照しているドキュメントを参照してください。私はそれを知るが、なぜ独立したエンティティとして必要な未決の意図があるのだろうか?
  2. 保留中のインテントの原因となるアクティビティ/タスクのライフサイクルの動作は何ですか?
  3. 放送受信機はいつ必要ですか?
  4. ブロードキャスト受信者の制限は何ですか?

私はこれらが真剣に新しい質問であることを認識していますが、私はこれらのコアコンセプトを理解したいと思っていますので、サンプル/ガイド/公式ドキュメントに頼る必要はありません。

フィードバックは歓迎します。ありがとう。

答えて

2

PendingIntentの主な目的は、別のアプリケーションにあなたの代わりに何かをする許可を書かせることです。アプリケーションは、基本的に以下の2つの要因により、何ができるのかが制限されています。

  • 可視性。一般に公開されている(または任意の)インテントフィルタで提供されていないサービスやアクティビティなどのコンポーネントは、他のアプリケーションから呼び出すことはできません。パッケージとクラス名を明示的に指定してアプリケーションから呼び出すことができます。
  • 権限。各アプリケーションは、一定量の許可を要求できます。これらは大部分があらかじめ定義された権限ですが、あなたは自分の権限を定義するオプションを持っていますが、決してそれを使用しませんでした。アプリケーションは、これらのアクセス許可を超えるものは実行できません。 必要な権限と何かをするの視認性を持つアプリケーションは、特にあなたは彼女の代わりにそれを行うには許可する場合

さて、保留中の意図で、あなたは、これらの制約の両方を乗り越えることができます。アプリケーションでは、たとえば、前記アクティビティの明示的な意図が含まれている保留中の意図がある場合、プライベートアクティビティの1つを呼び出すことができます。

[編集] たとえば、アラームマネージャで使用されます。それはアラームマネージャに、何時にそれを(保留中の)インテントとして与えるかを指示します。時間が到来するとアプリケーションがおそらくそこにはないので、アラームマネージャはあなたのためにそれを送信する必要があります。つまり、これらの意図は、アプリケーションが許可されているものではなく、アラームマネージャが許可するものだけを行うことができます。アラームマネージャが単に何かを行うことが許されていれば、すべてのアプリケーションはアラームマネージャをプロキシとして使用することで何かを行うことができます。したがって、保留中のインテントを使用して、アラームマネージャにあなたの特定の目的に必要な権限を与える必要があります。[/ edit]

これ以外にも、通常のインテントとはあまり違いはありません。使用に関する限り。それは粘り強い意図などでもう少し複雑になりますが、少なくとも私が知る限り、それはその一般的な要点です。

特定のsystem eventsに反応する場合、または他のアプリケーションのイベントに反応する場合は、ブロードキャストレシーバーが必要です。放送受信機は目に見えず、視聴形態を作成せず、ユーザインタラクションの形式を伴わない。利点は、アプリケーション(またはあなたのアクティビティ)が現在実行中であるかどうかに関わらず、これが発生する可能性があることです。

ブロードキャストレシーバは、約10秒間しか処理できません。その後、システムによって強制終了されます。ですから、長時間実行されているプロセスを実行したい場合は、バックグラウンドサービスを使用するか、アクティビティを開いてユーザーに操作をさせる必要があります。

+0

優れた書き込み。私は今、このコンセプトにもっと自信を持っています。迅速な回答ありがとうございます。 – Gusdor

関連する問題