免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
深藍(lán)筆記(1)

干貨

簡單摘錄有關(guān)廣播(Broadcast)的重要知識(shí)點(diǎn)。

不同方法發(fā)送廣播

sendBrodcast

一般廣播,所有滿足條件的BroadcastReceive都會(huì)執(zhí)行其OnReceive方法,但執(zhí)行順序無保證。

sendOraderredBroadcast 

順序廣播,發(fā)送的Intent(意圖)會(huì)根據(jù)BroadcastReceive注冊(cè)的IntentFilter設(shè)置的優(yōu)先級(jí)的順序來執(zhí)行OnReceive(接受)方法。

sendStickyBroadcast       

粘性廣播,其發(fā)送的Intent在發(fā)送后會(huì)一直存在,并且在以后調(diào)用registerReceiver注冊(cè)相匹配的Receive時(shí)會(huì)把這個(gè)Intent直接返回給新注冊(cè)的Receiver。

靜態(tài)動(dòng)態(tài)廣播

靜態(tài)廣播:

在清單文件(AndroidManifest.xml)中使用<receiver>標(biāo)簽聲明注冊(cè),并在標(biāo)簽內(nèi)使用<intent-filter>標(biāo)簽設(shè)置過濾器。

動(dòng)態(tài)廣播

注冊(cè)使用調(diào)用Context對(duì)象的registerReceiver方法,銷毀調(diào)用Context對(duì)象的unregisterReceiver,另外動(dòng)態(tài)注冊(cè)BroadcastReceiver對(duì)應(yīng)的Context銷毀時(shí),BroadcastReceiver也就自動(dòng)取消注冊(cè)。

實(shí)貨

額,為了與上面的干貨對(duì)應(yīng),不過有點(diǎn)不倫不類,不過,沒事,算博眼球了。

下面會(huì)有一個(gè)簡單的例子介紹靜態(tài)廣播和動(dòng)態(tài)廣播,我會(huì)摘錄點(diǎn)重要代碼,具體看我后面的源代碼了,大片大片的源代碼還是放在IDE(集成開發(fā)工具里面好),各位如能一邊看我博客,一邊看eclipse效果更佳。

靜態(tài)廣播

1.清單列表(Activity后面添加):

   1:  <!-- 注冊(cè)自定義靜態(tài)廣播接收器 -->
   2:          <receiver android:name="com.example.broadcastexample.StaticReceiver">
   3:              <intent-filter>
   4:                  <action android:name="com.bn.my.staticreceiver"></action>
   5:              </intent-filter>
   6:          </receiver>

2.發(fā)布廣播:

   1:  //按鈕變量
   2:      private Button sendStaticButton;
   3:      private Button sendDynamicButton;
   4:      //靜態(tài)變量
   5:      private static final String STATICACTION="com.bn.my.staticreceiver";
   6:      private static final String DYNAMICATION="com.bn.my.dynamicreceiver";
   7:      
   8:      @Override
   9:      protected void onCreate(Bundle savedInstanceState) {
  10:          super.onCreate(savedInstanceState);
  11:          setContentView(R.layout.activity_main);
  12:          //得到按鈕并注冊(cè)事件
  13:          sendStaticButton=(Button)findViewById(R.id.btn_sendStaticBroadcast);
  14:          sendStaticButton.setOnClickListener(new DiyOnClickLinstener());
  15:          sendDynamicButton=(Button)findViewById(R.id.btn_sendDynamicBroadcast);
  16:          sendDynamicButton.setOnClickListener(new DiyOnClickLinstener());
  17:      }

內(nèi)部類DiyOnClickLinstener

   1:  class DiyOnClickLinstener implements OnClickListener{
   2:   
   3:              @Override
   4:              public void onClick(View v) {
   5:                  // TODO Auto-generated method stub
   6:                  Intent intent=new Intent();
   7:                  if(v.getId()==R.id.btn_sendStaticBroadcast){
   8:                      intent.setAction(STATICACTION);
   9:                      intent.putExtra("msg", "接受靜態(tài)注冊(cè)廣播成功!");
  10:                  }
  11:                  else if(v.getId()==R.id.btn_sendDynamicBroadcast)
  12:                  {
  13:                      intent.setAction(DYNAMICATION);
  14:                      intent.putExtra("msg", "接受動(dòng)態(tài)廣播成功!");
  15:                  }
  16:                  //發(fā)布廣播
  17:                  sendBroadcast(intent);
  18:              }
  19:              
  20:          }

3.接受廣播

其實(shí)在清單就告訴系統(tǒng)我的接受類是StaticReceiver,該類必須繼承BroadcastReceiver,我們可以新建個(gè)類。

   1:  public class StaticReceiver extends BroadcastReceiver {
   2:   
   3:      @Override
   4:      public void onReceive(Context context, Intent intent) {
   5:          // TODO Auto-generated method stub
   6:          String msg=intent.getStringExtra("msg");
   7:          Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
   8:      }
   9:   
  10:  }

動(dòng)態(tài)廣播

1.發(fā)布廣播,此處代碼在靜態(tài)廣播的發(fā)布廣播處,自行尋找。

2.onStart方法處,注冊(cè)動(dòng)態(tài)廣播,同清單文件里面填寫,并指定接受廣播時(shí)的事件。

注意,程序的運(yùn)行順序?yàn)閛nCreate()->onStart()。

   1:  private BroadcastReceiver dynamciReceiver=/**
   2:       * @author haichao
   3:       * 動(dòng)態(tài)添加的接受事件
   4:       */
   5:      new BroadcastReceiver(){
   6:   
   7:          @Override
   8:          public void onReceive(Context context, Intent intent) {
   9:              // TODO Auto-generated method stub
  10:              if(intent.getAction().equals(DYNAMICATION)){//動(dòng)作檢測
  11:                  String msg=intent.getStringExtra("msg");//獲取intentn內(nèi)容
  12:                  Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();//顯示
  13:              }
  14:          }
  15:          
  16:      };
  17:      /* (non-Javadoc)
  18:       * @see android.app.Activity#onStart()
  19:       * 動(dòng)態(tài)添加廣播
  20:       */
  21:      @Override
  22:      protected void onStart() {
  23:          // TODO Auto-generated method stub
  24:          super.onStart();
  25:          //添加意圖篩選器
  26:          IntentFilter dynamic_filter=new IntentFilter();
  27:          dynamic_filter.addAction(DYNAMICATION);
  28:          registerReceiver(dynamciReceiver,dynamic_filter);
  29:      }
有沒有感覺變量dynamiciReceiver與我們繼承BroadcastReceiver的StaticReceiver相似,對(duì),這里和那里做的相同的功能,不過這里是動(dòng)態(tài)的。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android中Broadcast Receiver組件詳解
總結(jié)篇之五:BroadcastReceiver應(yīng)用詳解
Android Broadcast機(jī)制
Android中BroadCastReceiver使用
Android BroadcastReceiver 簡介 - 蔚藍(lán)天空 探索無限 - Ja...
3. 廣播的發(fā)送與接收
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服