2014年1月28日 星期二

Android 開發 (十九) BroadcastReceiver

使用 BroadcastReceiver  讓我們可以去接收某些Action,例如手機沒電,或者某些自己特定的action,在 OnReceive的時候我們可以做一些接收到這個action時所需作的處理,
在這邊寫一些範例


   @Override
   public void onClick(View arg0) {
           Intent intent = new Intent().setAction(  
                         "myAction").putExtra("Tag",  
                         "Data");  
                  
              sendBroadcast(intent);  
   }
   

在button click的時候 ,sendBroadcast 送廣播給手機, 並且設定 action為我自己客製化的action,
這時所有監聽這個action的都會被呼叫。


    public void onReceive(Context context, Intent intent) {  
     Log.d("Ted","OnReceive");
        this.context = context;  
        if(intent.getAction().equals("myAction")){  
            Log.v("Ted", intent.getStringExtra("Tag"));  
            showNotification();  
        }  
        
    } 

我在接收到action的時候發送Notification,使手機出現Notification。

附註:
使用BroadcastReceiver 必須在manifest裡增加receiver,範例如下


        <receiver android:name="Receiver1" >
            <intent-filter>
                <action android:name="myAction" >
                </action>
            </intent-filter>
        </receiver>

myAction為客製化的action,在button click時我有設定action,所以在button click之後會去呼叫Receiver1,並且在 OnReceive可以做相關的動作。

附上 sample Code

沒有留言:

張貼留言