2011-07-11 45 views
24

可能重複:
What is Pending Intent?意圖和未決意圖之間的確切區別是什麼?

我感到困惑意圖未決的意圖
任何人都可以解釋什麼是兩者之間的區別?我搜索了SO,我發現這個鏈接,但它不符合我的需要https://stackoverflow.com/questions/5633810/what-is-difference-between-an-intent-and-a-pending-intent

我知道待定的意圖是一個意圖,將在稍後開始。正常意圖在傳遞到startActivity(intent)StartService(intent)時開始。

+1

相關:http://stackoverflow.com/questions/2808796/what-is-pending-intent/4812421#4812421 –

+0

http://android-pending-intent.blogspot.in/可能會幫你。 – boiledwater

回答

14

的PendingIntent

一個Intent和目標動作用它來執行的說明。這個類的實例是用getActivity(Context,int,Intent,int),getBroadcast(Context,int,Intent,int),getService(Context,int,Intent,int)創建的。返回的對象可以交給其他應用程序,以便他們可以執行您以後代表您所描述的操作。

通過將PendingIntent提供給另一個應用程序,您授予它執行您指定的操作的權限,就好像另一個應用程序是您自己的一樣(具有相同的權限和標識)。因此,您應該小心如何構建PendingIntent:例如,您提供的基本Intent將顯式地將組件名稱設置爲您自己的組件之一,以確保它最終發送到那裏和其他地方。

PendingIntent本身只是對由系統維護的令牌的引用,它描述了用於檢索原始數據的原始數據。這意味着,即使其擁有的應用程序的進程被終止,PendingIntent本身仍然可以從其他被賦予的進程中使用。如果稍後創建的應用程序重新獲取相同類型的PendingIntent(相同的操作,相同的Intent操作,數據,類別和組件,以及相同的標誌),它將會收到一個表示相同標記的PendingIntent(如果該標記仍然有效)由此調用取消()將其刪除

INTENT

的意圖是操作的抽象描述進行。它可以與startActivity一起使用以啓動一個Activity,broadcastIntent將其發送給任何感興趣的BroadcastReceiver組件,並使用startService(Intent)或bindService(Intent,ServiceConnection,int)與後臺服務進行通信。

Intent提供了一種工具,用於在不同應用程序中的代碼之間執行延遲的運行時綁定。其最重要的用途是開展活動,在活動中它可以被認爲是活動之間的膠水。它基本上是一個被動數據結構,它包含要執行的操作的抽象描述。意圖中的主要信息包括:

action - 要執行的一般操作,如ACTION_VIEW,ACTION_EDIT,ACTION_MAIN等 數據 - 用於操作的數據,如聯繫人數據庫中的人員記錄,以Uri表示。

+121

驚人的複製粘貼技能。 –

+14

當人們在SO中提出一個問題時,這個人可能完全使用Google進行搜索,然後對發佈該問題的所有答案感到失望,這是衆所周知的事實。如果你已經用簡單易懂的方式解釋了答案並且不從開發者站點複製粘貼,這將會非常有幫助。 這樣你會贏得更多的尊重。 – akash89

+3

@NikunjPatel,請輸入一個實際的答案。從人類的洞察力將是偉大的,而不是文檔。 RTFM不是一個答案。 –

相關問題