欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android基礎(chǔ)知識(shí)之broadcast廣播詳解

 更新時(shí)間:2016年06月08日 14:23:35   作者:_江南一點(diǎn)雨  
這篇文章主要為大家詳細(xì)介紹了Android基礎(chǔ)知識(shí)之broadcast廣播的相關(guān)資料,感興趣的小伙伴們可以參考一下

Android中的廣播用的太多了,今天稍微總結(jié)一下。
按注冊(cè)方式分為兩種:

1.靜態(tài)注冊(cè)廣播:
靜態(tài)注冊(cè)廣播就是在androidManifest.xml文件中注冊(cè)廣播,假設(shè)我們要實(shí)現(xiàn)這樣一個(gè)效果,在一個(gè)activity上點(diǎn)擊按鈕,發(fā)送一條廣播,這條廣播彈出一個(gè)toast,顯示“靜態(tài)”二字。

先看看廣播接受者:

public class MyBroadcast extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    Toast.makeText(context,"靜態(tài)", Toast.LENGTH_LONG).show();
  }

}

清單文件中注冊(cè):

  <receiver android:name="com.example.staticbroadcast.MyBroadcast" >
      <intent-filter>
        <action android:name="com.test.StaticBroadcast" />
      </intent-filter>
    </receiver>

activity中的點(diǎn)擊事件(發(fā)送廣播):

 this.static_btn.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        Intent intent = new Intent();
        intent.setAction("com.test.StaticBroadcast");
        sendBroadcast(intent);
      }
    });

2.動(dòng)態(tài)注冊(cè):
動(dòng)態(tài)注冊(cè)一般是在activity中的onStart()方法中注冊(cè),在onStop()方法中解除注冊(cè),代碼如下:

public class MainActivity extends Activity {

  private Button static_btn;
  private Button dynamic_btn;
  private BroadcastReceiver myBroadcastReceiver;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.static_btn = (Button) this.findViewById(R.id.button1);
    this.dynamic_btn = (Button) this.findViewById(R.id.Button01);
    myBroadcastReceiver = new BroadcastReceiver(){

      @Override
      public void onReceive(Context context, Intent intent) {
        Toast.makeText(MainActivity.this,"你好,這里是動(dòng)態(tài)廣播!", Toast.LENGTH_LONG).show();
      }

    };

//   this.static_btn.setOnClickListener(new OnClickListener() {
//
//     @Override
//     public void onClick(View v) {
//       Intent intent = new Intent();
//       intent.setAction("com.test.StaticBroadcast");
//       sendBroadcast(intent);
//     }
//   });

    this.dynamic_btn.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        //發(fā)送廣播
        Intent intent = new Intent();
        intent.setAction("DynamicBroadcast");
        sendBroadcast(intent);
      }
    });
  }

  @Override
  protected void onStart() {
    super.onStart();
    //注冊(cè)廣播
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction("DynamicBroadcast");
    registerReceiver(myBroadcastReceiver, intentFilter);

  }

  @Override
  protected void onStop() {
    super.onStop();
    //取消注冊(cè)
    unregisterReceiver(myBroadcastReceiver);
  }
}

關(guān)于靜態(tài)注冊(cè)的細(xì)節(jié):
android:exported=”true”這個(gè)屬性表示該廣播接收器是否接收來(lái)自其他App發(fā)出的廣播,如果有intent-filter屬性,則默認(rèn)為true,否則默認(rèn)為false。

每個(gè)廣播接收者都可以接受多個(gè)廣播源,如果是靜態(tài)注冊(cè),那么你要這么做:

  <receiver 
      android:exported="true"
      android:name="com.example.staticbroadcast.MyBroadcast" >
      <intent-filter>
        <action android:name="com.test.StaticBroadcast" />
        <action android:name="com.test.StaticBroadcast2"/>
      </intent-filter>
    </receiver>

在廣播接收器中這樣處理:

  @Override
  public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals("com.test.StaticBroadcast")) {
      Toast.makeText(context, "靜態(tài)", Toast.LENGTH_SHORT).show();
    } else if (intent.getAction().equals("com.test.StaticBroadcast2")) {
      Toast.makeText(context, "靜態(tài)2", Toast.LENGTH_SHORT).show();
    }
  }

如果是動(dòng)態(tài)注冊(cè),注冊(cè)方式如下:

  @Override
  protected void onStart() {
    super.onStart();
    //注冊(cè)廣播
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction("DynamicBroadcast");
    intentFilter.addAction("DynamicBroadcast2");
    registerReceiver(myBroadcastReceiver, intentFilter);

  }

廣播接收器中的處理方式與靜態(tài)注冊(cè)一致。

關(guān)于怎樣使用broadcast實(shí)現(xiàn)activity和fragment之間的通信可以查看我的另一篇博客使用Broadcast實(shí)現(xiàn)android組件之間的通信

原文地址:http://blog.csdn.net/u012702547/article/details/46955787

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 零基礎(chǔ)學(xué)習(xí)教程之Linux下搭建android開(kāi)發(fā)環(huán)境

    零基礎(chǔ)學(xué)習(xí)教程之Linux下搭建android開(kāi)發(fā)環(huán)境

    這篇文章主要介紹了Linux下搭建android開(kāi)發(fā)環(huán)境,特別適合零基礎(chǔ)的同學(xué)學(xué)習(xí),想要在Linux及ubuntu11.10下配置android4.0.3開(kāi)發(fā)環(huán)境的朋友可以參考一下
    2015-12-12
  • android多媒體音樂(lè)(MediaPlayer)播放器制作代碼

    android多媒體音樂(lè)(MediaPlayer)播放器制作代碼

    這篇文章主要為大家詳細(xì)介紹了android多媒體音樂(lè)(MediaPlayer)播放器的制作相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android Jetpack組件之ViewModel使用詳解

    Android Jetpack組件之ViewModel使用詳解

    Android中的ViewModel是一個(gè)可以用來(lái)存儲(chǔ)UI相關(guān)的數(shù)據(jù)的類(lèi)。ViewModel的生命周期會(huì)比創(chuàng)建它的Activity、Fragment的生命周期長(zhǎng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-04-04
  • Android MVVM架構(gòu)實(shí)現(xiàn)RecyclerView列表詳解流程

    Android MVVM架構(gòu)實(shí)現(xiàn)RecyclerView列表詳解流程

    MVVM是Model-View-ViewModel的簡(jiǎn)寫(xiě)。它本質(zhì)上就是MVC 的改進(jìn)版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務(wù)邏輯分開(kāi)
    2021-10-10
  • Android基于TextView實(shí)現(xiàn)的跑馬燈效果實(shí)例

    Android基于TextView實(shí)現(xiàn)的跑馬燈效果實(shí)例

    這篇文章主要介紹了Android基于TextView實(shí)現(xiàn)的跑馬燈效果,以完整實(shí)例形式分析了Android使用TextView通過(guò)屬性設(shè)置及功能代碼實(shí)現(xiàn)跑馬燈效果的相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • Android滑動(dòng)事件沖突的解決方法

    Android滑動(dòng)事件沖突的解決方法

    這篇文章主要為大家詳細(xì)介紹了Android滑動(dòng)事件沖突的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android開(kāi)發(fā)中Button組件的使用

    Android開(kāi)發(fā)中Button組件的使用

    這篇文章主要介紹了Android開(kāi)發(fā)中Button組件的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法

    Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法

    這篇文章主要介紹了Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Android自定義view實(shí)現(xiàn)帶header和footer的Layout

    Android自定義view實(shí)現(xiàn)帶header和footer的Layout

    這篇文章主要介紹了Android自定義view實(shí)現(xiàn)帶header和footer的Layout,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • 詳解Android進(jìn)程和線(xiàn)程

    詳解Android進(jìn)程和線(xiàn)程

    這篇文章主要為大家詳細(xì)介紹了Android進(jìn)程和Android線(xiàn)程兩個(gè)概念
    2016-06-06

最新評(píng)論