欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android中Broadcast廣播機(jī)制的原理是什么

這篇文章將為大家詳細(xì)講解有關(guān)Android中Broadcast廣播機(jī)制的原理是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

公司主營業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出龍州免費(fèi)做網(wǎng)站回饋大家。

首先,一個(gè)activity是如何發(fā)出一個(gè)廣播的?

是通過sendBroadcast()函數(shù),函數(shù)的參數(shù)為一個(gè)intent對(duì)象,該對(duì)象最重要的是定義了動(dòng)作,將廣播發(fā)送出去后,能夠處理該動(dòng)作的其他activity便能夠接收廣播,并作出響應(yīng)。

那么其他的activity是如何知道自己該接受什么動(dòng)作呢?

是通過過濾器fliter。在filter中定義了能夠響應(yīng)的所有動(dòng)作,如果廣播發(fā)出的動(dòng)作存在于filter當(dāng)中,該activity就響應(yīng),反之忽略廣播。

那么,接受了廣播之后,該activity又該執(zhí)行什么操作呢?

這里我們要說一下,對(duì)廣播的響應(yīng)我們是通過類BroadcastReceiver來實(shí)現(xiàn)的,我們通過繼承該類,并重載其onReceive方法,能夠自定義執(zhí)行后該做的處理。

我們還需要了解什么是動(dòng)作

所謂動(dòng)作,即action,其實(shí)大體上說就是對(duì)要進(jìn)行操作的描述。android給我們自定義了很多動(dòng)作,例如 ACTION_EDIT,ACTION_VIEW,等等。它們對(duì)即將進(jìn)行的操作進(jìn)行了描述,就像ACTION_EDIT,就將操作描述為編輯。那么能夠?qū)?現(xiàn)編輯功能的activity就會(huì)響應(yīng)。系統(tǒng)定義的action有很多,在此不再贅述,大家想要詳細(xì)了解的話可以參考官方文檔。那么除了官方提供的,我們 用得更多的還是我們自定義的action,自己對(duì)要實(shí)現(xiàn)的動(dòng)作做一個(gè)描述,通常的表示方法為“包名”+“.”+“動(dòng)作描述”。例 如:“com.suns.HTTPRequestActivity.BUTTONCHANGE”,分解開 即”com.suns.HTTPRequestActivity“+“.”+"BUTTONCHANGE"。就自定義了一個(gè)按鈕變化的action。其實(shí) 這只是一個(gè)命名規(guī)律的字符串罷了,為的只是讓intent和fliter能夠?qū)?yīng),還有讓人們知道這個(gè)動(dòng)作是干嘛的。

廣播能用幾種方法實(shí)現(xiàn)呢?它們有什么區(qū)別聯(lián)系?

實(shí)現(xiàn)廣播的方法有兩種。一種是在androidmanifest.xml當(dāng)中去注冊(cè)廣播,另一種方法是在代碼中動(dòng)態(tài)注冊(cè)廣播,這兩種方法雖然都能實(shí) 現(xiàn)廣播機(jī)制,但是還是有很大不同,所以運(yùn)用也要分情況。如果我們?cè)赼ndroidmanifest.xml中去定義的話,那么該廣播是在activity 結(jié)束之后也不會(huì)結(jié)束的,原因在于它已經(jīng)寫在了manifest.xml文件當(dāng)中,也就是注冊(cè)到了系統(tǒng)當(dāng)中,所以無論你的activity是否存在,對(duì)于該 廣播沒有影響。而在java代碼中動(dòng)態(tài)注冊(cè)廣播,在該activity結(jié)束后,我們可以注銷該廣播,也就是它隨著activity的消失而消失。這樣解 釋,大家都應(yīng)該清楚了。如果是一些系統(tǒng)應(yīng)用,比如手機(jī)沒電后震動(dòng)啊,后臺(tái)計(jì)算流量啊這樣的功能,需要一直存在的,我們可以在 androidmanifest.xml中注冊(cè),而一些只有該activity存在時(shí)才有意義的廣播,比如更改界面等等,就用動(dòng)態(tài)注冊(cè)比較合 適,activity都沒了。該廣播還有什么用呢?只會(huì)浪費(fèi)資源而已。

好了,說了這么多,我們還是需要用一個(gè)例子去應(yīng)用一下它。

首先先是動(dòng)態(tài)注冊(cè)廣播的,點(diǎn)擊界面上的button后,發(fā)送更改button的廣播,然后button變?yōu)檫M(jìn)度條。

代碼如下:

Broadcasttest.java:

package com.suns.ButtonChanged;    import android.content.BroadcastReceiver;   import android.content.Context;   import android.content.Intent;   import android.view.View;    public class Broadcasttest extends BroadcastReceiver{        @Override       public void onReceive(Context arg0, Intent arg1) {           // TODO Auto-generated method stub           ButtonChangedActivity.getButton().setVisibility(View.GONE);           ButtonChangedActivity.getBar().setVisibility(View.VISIBLE );                 }  }

下一頁將為您介紹ButtonChangeActivity.java實(shí)現(xiàn)代碼以及main.xml

ButtonChangeActivity.java:

package com.suns.ButtonChanged;    import android.app.Activity;   import android.content.Intent;   import android.content.IntentFilter;   import android.os.Bundle;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;   import android.widget.ProgressBar;    public class ButtonChangedActivity extends Activity {       /** Called when the activity is first created. */       private static Button button=null;       private static ProgressBar bar=null;       private Broadcasttest t;       private IntentFilter filter;       @Override       public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           button=(Button)findViewById(R.id.button);           bar=(ProgressBar)findViewById(R.id.bar);           button.setOnClickListener(new ButtonClick());       }             public static Button getButton()       {           return button;       }            public static ProgressBar getBar()       {           return bar;       }                   @Override       protected void onDestroy() {           // TODO Auto-generated method stub           super.onDestroy();           ButtonChangedActivity.this.unregisterReceiver(t);              }        class ButtonClick implements OnClickListener       {            @Override           public void onClick(View v) {               // TODO Auto-generated method stub               t=new Broadcasttest();               filter=new IntentFilter();               filter.addAction(Intent.ACTION_EDIT);               Intent intent=new Intent();               intent.setAction(Intent.ACTION_EDIT );               ButtonChangedActivity.this.registerReceiver(t, filter);               ButtonChangedActivity.this.sendBroadcast(intent);                     }       }  }

我們用registerReceiver函數(shù)去注冊(cè)一個(gè)廣播響應(yīng)事件,有兩個(gè)參數(shù),***個(gè)是我們自定義的receiver對(duì)象,第二個(gè)即是過濾器。

注意:我們要在activity的onDestroy()方法中注銷該廣播!

main.xml:

<?xml version="1.0" encoding="utf-8"?>   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="fill_parent"       android:layout_height="fill_parent"       android:orientation="vertical" >            <Button           android:id="@+id/button"           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:text="點(diǎn)擊"           />       <ProgressBar           android:id="@+id/bar"           android:visibility="gone"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           style="?android:attr/progressBarStyle"           />       </LinearLayout>

關(guān)于Android中Broadcast廣播機(jī)制的原理是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

分享標(biāo)題:Android中Broadcast廣播機(jī)制的原理是什么
鏈接分享:http://aaarwkj.com/article16/pjchgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站制作虛擬主機(jī)、軟件開發(fā)、微信公眾號(hào)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
国内精品久久久国产盗摄| 亚洲日本韩国视频久久精品| 亚洲啪啪av一区二区三区| 日韩女优中文字幕在线播放| 亚洲av日韩欧美精品| 欧美日韩一区二区三区在线| 妞妞婷婷基地五月天| 久久久国产精品视频一区| 国产精品神马午夜福利| 国产一区二区三区免费有码视频| 国产亚洲av综合人人精品| 日本免费一区二区三区等视频| 91色九色吧在线观看| 日韩国产欧美亚洲一区不卡| 国产自拍成人精品视频| 国产精品三级竹菊影视| 五月婷婷六月丁香伊人网| 国产成人亚洲合色婷婷| 精品欧美一区二区精品| 人妻中文字幕在线看粉嫩| 国产精品国产三级国产不卡| 女同蝴蝶在线看完整版| 国产内射一级一片内射高清视频1| 精品欧美高清免费视频| 日韩亚洲在线中文字幕| 亚洲熟妇av一区二区| 成人在线午夜免费视频| 好色人妻在线播放中文字幕| 蜜臀99久久精品久久久| 亚洲大片色一区在线观看| 免费午夜福利在线观看| 91九色国产老熟女乱子| 国内一级片内射免费视频观看| 欧美一区二区三区免费精品| 国产自拍成人精品视频| 亚洲免费视频一二三区| 97视频在线观看网站| 欧美三级特黄在线播放| 日本中文字幕乱码一区| 亚洲一区二区三区不卡伦理| 欧美成人高清在线播放|