黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Android-Intent和PendingIntent的關(guān)系

系統(tǒng) 2650 0

Intent和PendingIntent的關(guān)系?
Intent和PendingIntent的關(guān)系越看越迷惑,花了一段時(shí)間分析Android的JavaDoc終于有點(diǎn)心得,在此與大家分享:?
Intent是一個(gè)意圖,一個(gè)描述了想要啟動(dòng)一個(gè)Activity、Broadcast或是Service的意圖。它主要持有的信息是它想要啟動(dòng)的組件(Activity、Broadcast或是Service)。?
PendingIntent可以看作是對(duì)Intent的包裝。供當(dāng)前App之外的其他App調(diào)用。有點(diǎn)“被動(dòng)”或是“Callback”的意思,但不是嚴(yán)格意義上的“被動(dòng)”或是“Callback”。總之,當(dāng)前App不能用它馬上啟動(dòng)它所包裹的Intent。而是在外部App執(zhí)行這個(gè) PendingIntent時(shí),間接地、實(shí)際地調(diào)用里面的Intent。PendingIntent主要持有的信息是它所包裝的Intent和當(dāng)前App 的Context。正由于PendingIntent中保存有當(dāng)前App的Context,使它賦予外部App一種能力,使得外部App可以如同當(dāng)前 App一樣的執(zhí)行PendingIntent里的Intent,就算在執(zhí)行時(shí)當(dāng)前App已經(jīng)不存在了,也能通過(guò)存在PendingIntent里的 Context照樣執(zhí)行Intent。?
比較難理解,希望大家多提意見(jiàn)!?

Java代碼?? 收藏代碼
  1. Notification?n?=? new ?Notification(R.drawable.face_1,? "Service啟動(dòng)" ,?System.currentTimeMillis());??
  2. PendingIntent?contentIntent?=?PendingIntent.getActivity( this ,? 0 ,? new ?Intent( this ,?TServiceHolder. class ),? 0 );??
  3. n.setLatestEventInfo( this ,? "任務(wù)標(biāo)題" ,? "任務(wù)內(nèi)容" ,?contentIntent);??
  4. nManager.notify(NOTIFICATION_ID,?n);? //?任務(wù)欄啟動(dòng) ??

PendingIntent和Intent的區(qū)別:An Intent is something that is used right now; a PendingIntent is something that may create an Intent in the future. You will use a PendingIntent with Notifications, AlarmManager, etc.?

1. GSM網(wǎng)絡(luò)中android發(fā)送短信示例?

(1)代碼節(jié)選?
Java代碼?? 收藏代碼
  1. String?msg?= "你好,美女" ;??
  2. String?number?=? "135****6784" ;??
  3. SmsManager?sms?=?SmsManager.getDefault();??
  4. ??
  5. PendingIntent?pi?=?PendingIntent.getBroadcast(SmsActivity. this , 0 , new ?Intent(...), 0 );??
  6. sms.sendTextMessage(number,? null ,?msg,?pi,? null );??
  7. Toast.makeText(SmsActivity. this , "發(fā)送成功" ,Toast.LENGHT_LONG).show();??


(2)代碼解釋?

????? PendingIntent就是一個(gè)Intent的描述,我們可以把這個(gè)描述交給別的程序,別的程序根據(jù)這個(gè)描述在后面的別的時(shí)間做你安排做的事情 (By giving a PendingIntent to another application, you are granting it the right to perform the operation you have specified as if the other application was yourself,就相當(dāng)于PendingIntent代表了Intent)。本例中別的程序就是發(fā)送短信的程序,短信發(fā)送成功后要把intent廣播出去 。?
????? 函數(shù)SmsManager.sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)中參數(shù)解釋:?
????? 1)PendingIntent sentIntent:當(dāng)短信發(fā)出時(shí),成功的話sendIntent會(huì)把其內(nèi)部的描述的intent廣播出去,否則產(chǎn)生錯(cuò)誤代碼并通過(guò) android.app.PendingIntent.OnFinished進(jìn)行回調(diào),這個(gè)參數(shù)最好不為空,否則會(huì)存在資源浪費(fèi)的潛在問(wèn)題;?
????? 2)PendingIntent deliveryIntent:是當(dāng)消息已經(jīng)傳遞給收信人后所進(jìn)行的PendingIntent廣播。?
????? 查看PendingIntent 類可以看到許多的Send函數(shù),就是PendingIntent在進(jìn)行被賦予的相關(guān)的操作。?

?

轉(zhuǎn): http://yinter.iteye.com/blog/803839

Android-Intent和PendingIntent的關(guān)系


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論