青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

life02

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks

PendingIntent詳解 

http://hubingforever.blog.163.com/blog/static/17104057920117275222472/

2011-08-05 10:13:04|  分類: Android基礎(chǔ) |  標簽:pendingintent   |字號 訂閱

本文翻譯整理自:http://developer.android.com/reference/android/app/PendingIntent.html
public final class
PendingIntent
extends Object
implements Parcelable
簡介
PendingIntent用于描述Intent及其最終的行為. 
你可以通過getActivity(Context context, int requestCode, Intent intent, int flags)系列方法從系統(tǒng)取得一個用于啟動一個Activity的PendingIntent對象,
可以通過getService(Context context, int requestCode, Intent intent, int flags)方法從系統(tǒng)取得一個用于啟動一個Service的PendingIntent對象
可以通過getBroadcast(Context context, int requestCode, Intent intent, int flags)方法從系統(tǒng)取得一個用于向BroadcastReceiver的Intent廣播的PendingIntent對象
返回的PendingIntent可以遞交給別的應(yīng)用程序,然后繼續(xù)處理。這里的話你可以稍后才處理PendingIntent中描述的Intent及其最終行為。
當你把PendingIntent遞交給別的程序進行處理時,PendingIntent仍然擁有PendingIntent原程序所擁有的權(quán)限(with the same permissions and identity).當你從系統(tǒng)取得一個PendingIntent時,一定要非常小心才行。比如,通常,如果Intent目的地是你自己的component(Activity/Service/BroadcastReceiver)的話,你最好采用在Intent中顯示指定目的component名字的方式,以確保Intent最終能發(fā)到目的,否則Intent最后可能不知道發(fā)到哪里了。一個PendingIntent就是Android系統(tǒng)中的一個token(節(jié)點,這個應(yīng)該是Linux或C\C++用語)的一個對象引用,它描述了一些將用于retrieve的數(shù)據(jù)(這里,這些數(shù)據(jù)描述了Intent及其最終的行為)。
這就意味著即使PendingIntent原進程結(jié)束了的話, PendingIntent本身仍然還存在,可在其他進程(PendingIntent被遞交到的其他程序)中繼續(xù)使用.如果我在從系統(tǒng)中提取一個PendingIntent的,而系統(tǒng)中有一個和你描述的PendingIntent對等的PendingInent, 那么系統(tǒng)會直接返回和該PendingIntent其實是同一token的PendingIntent,而不是一個新的token和PendingIntent。然而你在從提取PendingIntent時,通過FLAG_CANCEL_CURRENT參數(shù),讓這個老PendingIntent的先cancel()掉,這樣得到的pendingInten和其token的就是新的了。
通過FLAG_UPDATE_CURRENT參數(shù)的話,可以讓新的Intent會更新之前PendingIntent中的Intent對象數(shù)據(jù),例如更新Intent中的Extras。另外,我們也可以在PendingIntent的原進程中調(diào)用PendingIntent的cancel ()把其從系統(tǒng)中移除掉。
注意:兩個PendingIntent對等是指它們的operation一樣, 且其它們的Intent的action, data, categories, components和flags都一樣。但是它們的Intent的Extra可以不一樣。
主要常量
FLAG_CANCEL_CURRENT:如果當前系統(tǒng)中已經(jīng)存在一個相同的PendingIntent對象,那么就將先將已有的PendingIntent取消,然后重新生成一個PendingIntent對象。
FLAG_NO_CREATE:如果當前系統(tǒng)中不存在相同的PendingIntent對象,系統(tǒng)將不會創(chuàng)建該PendingIntent對象而是直接返回null。
FLAG_ONE_SHOT:該PendingIntent只作用一次。在該PendingIntent對象通過send()方法觸發(fā)過后,PendingIntent將自動調(diào)用cancel()進行銷毀,那么如果你再調(diào)用send()方法的話,系統(tǒng)將會返回一個SendIntentException。
FLAG_UPDATE_CURRENT:如果系統(tǒng)中有一個和你描述的PendingIntent對等的PendingInent,那么系統(tǒng)將使用該PendingIntent對象,但是會使用新的Intent來更新之前PendingIntent中的Intent對象數(shù)據(jù),例如更新Intent中的Extras。
主要成員函數(shù)
getActivities系列方法
該系列方法將從系統(tǒng)取得一個用于啟動一個Activity的PendingIntent對象。

public static PendingIntent getActivity (Context context, int requestCode, Intent intent, int flags)

Since: API Level 1

Retrieve a PendingIntent that will start a new activity, like calling Context.startActivity(Intent). Note that the activity will be started outside of the context of an existing activity, so you must use the Intent.FLAG_ACTIVITY_NEW_TASK launch flag in the Intent.

因為對于Context的startActivity方法,如果不是在其子類(Activity)中調(diào)用,那么必須對Intent加上FLAG_ACTIVITY_NEW_TASK。

具體可以參照Context中對startActivity方法的說明或Activity和Task的基本模型
Parameters
contextThe Context in which this PendingIntent should start the activity.
requestCodePrivate request code for the sender (currently not used).
intentIntent of the activity to be launched.
flagsMay be FLAG_ONE_SHOTFLAG_NO_CREATEFLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT, or any of the flags as supported byIntent.fillIn() to control which unspecified parts of the intent that can be supplied when the actual send happens.
當我們使用Intent.fillIn()方法時,表示其Intent的某個數(shù)據(jù)項可以被send方法的Inent參數(shù)進行覆蓋重寫。
Returns
  Returns an existing or new PendingIntent matching the given parameters. May return null only if FLAG_NO_CREATE has been supplied.

public static PendingIntent getActivities (Context context, int requestCode, Intent[] intents, int flags)

Since: API Level 11

Like getActivity(Context, int, Intent, int), but allows an array of Intents to be supplied. The first Intent in the array is taken as the primary key for the PendingIntent, like the single Intent given to getActivity(Context, int, Intent, int). Upon sending the resulting PendingIntent, all of the Intents are started in the same way as they would be by passing them to startActivities(Intent[]).

The first intent in the array will be started outside of the context of an existing activity, so you must use the Intent.FLAG_ACTIVITY_NEW_TASK launch flag in the Intent. (Activities after the first in the array are started in the context of the previous activity in the array, so FLAG_ACTIVITY_NEW_TASK is not needed nor desired for them.)

The last intent in the array represents the key for the PendingIntent. In other words, it is the significant element for matching (as done with the single intent given togetActivity(Context, int, Intent, int), its content will be the subject of replacement by send(Context, int, Intent) andFLAG_UPDATE_CURRENT, etc. This is because it is the most specific of the supplied intents, and the UI the user actually sees when the intents are started.

Parameters
contextThe Context in which this PendingIntent should start the activity.
requestCodePrivate request code for the sender (currently not used).
intentsArray of Intents of the activities to be launched.
flagsMay be FLAG_ONE_SHOTFLAG_NO_CREATEFLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT, or any of the flags as supported byIntent.fillIn() to control which unspecified parts of the intent that can be supplied when the actual send happens.
當我們使用Inent.fillIn()所支持的flags時,表示其Intent的數(shù)據(jù)項可以被send方法的Intent參數(shù)覆蓋重寫。
Returns
  • Returns an existing or new PendingIntent matching the given parameters. May return null only if FLAG_NO_CREATE has been supplied.
getService方法
該方法將系統(tǒng)取得一個用于啟動一個Service的PendingIntent對象.

public static PendingIntent getService (Context context, int requestCode, Intent intent, int flags)

Since: API Level 1

Retrieve a PendingIntent that will start a service, like calling Context.startService(). The start arguments given to the service will come from the extras of the Intent.

Parameters
contextThe Context in which this PendingIntent should start the service.
requestCodePrivate request code for the sender (currently not used).
intentAn Intent describing the service to be started.
flagsMay be FLAG_ONE_SHOTFLAG_NO_CREATEFLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT, or any of the flags as supported byIntent.fillIn() to control which unspecified parts of the intent that can be supplied when the actual send happens.
當我們使用Intent.fillIn()方法的flags時,它表示其Intent的數(shù)據(jù)項可以被send方法的Intent參數(shù)覆蓋重寫。
Returns
  • Returns an existing or new PendingIntent matching the given parameters. May return null only if FLAG_NO_CREATE has been supplied.
getBroadcast方法
該方法將從系統(tǒng)取得一個用于向BroadcastReceiver的Intent廣播的PendingIntent對象

public static PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags)

Since: API Level 1

Retrieve a PendingIntent that will perform a broadcast, like calling Context.sendBroadcast().

Parameters
contextThe Context in which this PendingIntent should perform the broadcast.
requestCodePrivate request code for the sender (currently not used).
intentThe Intent to be broadcast.
flagsMay be FLAG_ONE_SHOTFLAG_NO_CREATEFLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT, or any of the flags as supported byIntent.fillIn() to control which unspecified parts of the intent that can be supplied when the actual send happens.
當我們使用Intent.fillIn()方法的flags時,它表示其Intent的數(shù)據(jù)項可以被send方法的Intent參數(shù)覆蓋重寫。
Returns
  • Returns an existing or new PendingIntent matching the given parameters. May return null only if FLAG_NO_CREATE has been supplied.
send系列方
該系列主要用于觸發(fā)PendingIntent的Intent行為。用其Intent或啟動一個Activity,或啟動一個Service,或向BroadcastReceiver發(fā)送Intent廣播。

public void send ()

Since: API Level 1

Perform the operation associated with this PendingIntent.

Throws
PendingIntent.CanceledExceptionThrows CanceledException if the PendingIntent is no longer allowing more intents to be sent through it.

public void send (Context context, int code, Intent intent)

Since: API Level 1

Perform the operation associated with this PendingIntent, allowing the caller to specify information about the Intent to use.

Parameters
contextThe Context of the caller.
該參數(shù)是因為intent參數(shù)才需要提供的,所用如果你的intent參數(shù)不為null的話,該參數(shù)也不能為null.
codeResult code to supply back to the PendingIntent's target.
intentAdditional Intent data. See Intent.fillIn() for information on how this is applied to the original Intent.
Throws
PendingIntent.CanceledExceptionThrows CanceledException if the PendingIntent is no longer allowing more intents to be sent through it.

public void send (int code, PendingIntent.OnFinished onFinished, Handler handler)

Since: API Level 1

Perform the operation associated with this PendingIntent, allowing the caller to be notified when the send has completed.

Parameters
codeResult code to supply back to the PendingIntent's target.
onFinishedThe object to call back on when the send has completed, or null for no callback.
通過該參數(shù),我們可以設(shè)置在Intent發(fā)送成功后的回調(diào)函數(shù)。
handlerHandler identifying the thread on which the callback should happen. If null, the callback will happen from the thread pool of the process.
用于說明onFinished參數(shù)指定的回調(diào)函數(shù),最終在哪個Handler中進行調(diào)用。
Throws
PendingIntent.CanceledExceptionThrows CanceledException if the PendingIntent is no longer allowing more intents to be sent through it.

public void send (Context context, int code, Intent intent, PendingIntent.OnFinished onFinished, Handler handler)

Since: API Level 1

Perform the operation associated with this PendingIntent, allowing the caller to specify information about the Intent to use and be notified when the send has completed.

For the intent parameter, a PendingIntent often has restrictions on which fields can be supplied here, based on how the PendingIntent was retrieved ingetActivity(Context, int, Intent, int)getBroadcast(Context, int, Intent, int), or getService(Context, int, Intent, int).

Parameters
contextThe Context of the caller. This may be null if intent is also null.
該參數(shù)是因為intent參數(shù)才需要提供的,一般是當前的context,如果你的intent參數(shù)不為null的話,該函數(shù)也不能為null.
codeResult code to supply back to the PendingIntent's target.
intentAdditional Intent data. See Intent.fillIn() for information on how this is applied to the original Intent. Use null to not modify the original Intent.
onFinishedThe object to call back on when the send has completed, or null for no callback.
通過該參數(shù),我們可以指定Intent發(fā)送成功后的回調(diào)函數(shù)。
handlerHandler identifying the thread on which the callback should happen. If null, the callback will happen from the thread pool of the process.
該參數(shù)說明onFinished參數(shù)指定的回調(diào)函數(shù)將在哪個Handler中進行調(diào)用。
Throws
PendingIntent.CanceledExceptionThrows CanceledException if the PendingIntent is no longer allowing more intents to be sent through it.
cancel()函數(shù)

public void cancel ()

Since: API Level 1

Cancel a currently active PendingIntent. Only the original application owning an PendingIntent can cancel it.

只有PengdingIntent的原應(yīng)用程序才能調(diào)用cancel()來把它從系統(tǒng)中移除掉。

getTargetPackage()函數(shù)

public String getTargetPackage ()

Since: API Level 1

Return the package name of the application that created this PendingIntent, that is the identity under which you will actually be sending the Intent. The returned string is supplied by the system, so that an application can not spoof its package.

Returns
  • The package name of the PendingIntent, or null if there is none associated with it.

posted on 2012-03-15 22:22 life02 閱讀(1894) 評論(0)  編輯 收藏 引用 所屬分類: Android開發(fā)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            宅男噜噜噜66国产日韩在线观看| 国产精品毛片a∨一区二区三区|国 | 欧美一区二区在线观看| 亚洲人成亚洲人成在线观看| 激情一区二区三区| 亚洲春色另类小说| 亚洲精品一区在线观看| 中文在线不卡视频| 久久久久久久久蜜桃| 免费高清在线视频一区·| 亚洲大胆美女视频| 日韩一区二区高清| 久久精品动漫| 欧美电影免费观看大全| 欧美性天天影院| 激情懂色av一区av二区av| 日韩视频在线免费| 久久精品国产欧美亚洲人人爽| 免费在线看一区| 一区二区三区免费网站| 久久乐国产精品| 欧美视频在线免费看| 国语精品中文字幕| 亚洲一区二区免费在线| 欧美成人a视频| 亚洲尤物视频在线| 欧美精品在线免费播放| 国产真实久久| 亚洲夜间福利| 欧美激情一区二区久久久| 亚洲一区黄色| 欧美另类videos死尸| 狠狠色丁香久久婷婷综合丁香| 亚洲精品欧美日韩专区| 久久中文字幕一区| 亚洲一区日本| 欧美午夜片在线观看| 亚洲久久一区| 免费黄网站欧美| 午夜伦欧美伦电影理论片| 欧美日韩精品久久久| 在线国产亚洲欧美| 久久精品国产欧美激情| 亚洲中午字幕| 国产精品免费一区豆花| 中文成人激情娱乐网| 91久久久久| 欧美福利电影网| 亚洲高清成人| 麻豆国产va免费精品高清在线| 亚洲一区二区在线视频| 国产精品狼人久久影院观看方式| 99re66热这里只有精品4| 欧美激情乱人伦| 另类人畜视频在线| 亚洲激情国产| 亚洲经典在线| 欧美精品一区二| 99国产精品自拍| 99天天综合性| 在线精品国精品国产尤物884a| 欧美一区视频在线| 亚洲一区在线直播| 国产日本欧美一区二区| 久久激情视频久久| 久久av在线| 在线成人免费观看| 欧美激情一区二区三级高清视频| 免费亚洲一区二区| 99在线热播精品免费| 99国内精品久久| 国产精品免费看久久久香蕉| 欧美一区精品| 久久久999精品免费| 亚洲国产精品成人va在线观看| 欧美.www| 欧美日本韩国| 欧美一区二区啪啪| 久久久久久国产精品mv| 亚洲日韩第九十九页| 日韩亚洲国产精品| 国产欧美日韩不卡| 欧美高清不卡| 国产精品v亚洲精品v日韩精品| 性欧美video另类hd性玩具| 久久国产夜色精品鲁鲁99| 亚洲激情婷婷| 亚洲一区三区电影在线观看| 国内精品久久久久久影视8| 亚洲高清在线| 国产精品一区一区三区| 欧美成人亚洲成人| 欧美日韩中文另类| 久久亚洲捆绑美女| 欧美午夜寂寞影院| 欧美高清在线视频观看不卡| 国产精品qvod| 欧美激情视频一区二区三区免费| 国产精品激情电影| 亚洲福利视频网| 国产日韩精品在线| 亚洲日本国产| 在线不卡免费欧美| 亚洲一区二区在线播放| 亚洲精品精选| 久久九九热免费视频| 亚洲欧美中文日韩v在线观看| 免费人成网站在线观看欧美高清 | 欧美日本韩国在线| 久久影院亚洲| 国产精品视频免费观看| 亚洲激情视频在线播放| 国产三区精品| 一本久久知道综合久久| 91久久夜色精品国产九色| 欧美在线观看一区二区| 亚洲女与黑人做爰| 欧美日韩伦理在线| 亚洲国产精品小视频| 一区在线观看| 欧美在线视频一区| 亚洲免费在线观看| 一区二区三区欧美视频| 久久久久久成人| 久久久久久久91| 国产精品一区在线观看| aa日韩免费精品视频一| 日韩手机在线导航| 欧美激情小视频| 亚洲国产视频直播| 亚洲精品国精品久久99热| 麻豆av福利av久久av| 另类亚洲自拍| 激情小说另类小说亚洲欧美| 亚洲综合色激情五月| 亚洲欧美日韩在线一区| 欧美性大战久久久久| 一本久久青青| 亚洲欧美大片| 国产欧美日韩综合一区在线观看 | 午夜精品美女久久久久av福利| 在线性视频日韩欧美| 欧美日韩国产综合网| 99精品久久| 亚洲欧美在线x视频| 国产女精品视频网站免费| 香蕉久久夜色精品国产| 久久夜色精品国产噜噜av| 亚洲大片在线观看| 欧美精品一线| 亚洲一区二区三| 久久久综合激的五月天| 伊人久久综合97精品| 免费成人美女女| 99精品久久久| 久久久精品欧美丰满| 亚洲福利在线观看| 欧美人与性动交a欧美精品| 日韩视频在线观看免费| 欧美在线视频观看| 国内精品视频在线播放| 欧美91视频| 亚洲伊人网站| 久久久人成影片一区二区三区 | 欧美激情欧美狂野欧美精品| 日韩视频亚洲视频| 久久久综合香蕉尹人综合网| 亚洲人成人一区二区三区| 欧美三级资源在线| 久久精品国产91精品亚洲| 91久久久在线| 久久久久久亚洲精品中文字幕| 亚洲精品老司机| 国产伦精品一区| 欧美成人资源| 午夜精品免费视频| 欧美成人免费在线观看| 亚洲欧美日韩精品久久久久 | 欧美一区二区三区四区高清 | 欧美成人一区二免费视频软件| 国产精品99久久久久久人| 老鸭窝91久久精品色噜噜导演| 国产农村妇女毛片精品久久麻豆 | 国产精品日韩欧美大师| 久久伊人精品天天| 亚洲视频福利| 亚洲国产精品一区| 久久夜色精品国产欧美乱极品 | 欧美第一黄网免费网站| 欧美一区二区在线观看| 日韩亚洲一区在线播放| 精品电影一区| 国产手机视频一区二区| 欧美日韩一区二区三区在线看| 久久婷婷国产综合尤物精品 | 一区二区精品国产| 欧美激情精品久久久久久变态| 欧美在线观看视频| 亚洲欧美久久| 亚洲男女自偷自拍|