android receiver使用方法


參考網址:http://www.pin5i.com/showtopic-android-receiver-sample.html

可以在代碼文件中聲明一個receiver,也可以在manifest中聲明一個,前者中的receiver只有在該activity launch起來以后才會監聽其所感興趣的文件,而如果在androidManifext.xml中聲明的話,就不受限制,隨時可以監聽感興趣的事件。

首先談談在androidManifext.xml中注冊一個receiver, 例如我們想監聽相機按鈕按下事件的發生,並且發生后調用我們的camera程序

   <receiver android:name="CameraButtonIntentReceiver">
               <intent-filter>
                   <action android:name="android.intent.action.CAMERA_BUTTON"/>
               </intent-filter>
   </receiver>

在這個配置文件中聲明了一個receiver用來監聽相機的按鍵事件,所以還需要在代碼文件定義與配置文件中同名的receiver:

   public class CameraButtonIntentReceiver extends BroadcastReceiver {
   public void onReceive(Context context, Intent intent) {
       Intent i = new Intent(Intent.ACTION_MAIN);
           i.setClass(context, Camera.class);
           i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           context.startActivity(i);
   }
   }

關於另外一種,在代碼中注冊一個receiver,例如我們想在代碼文件中監聽電池電量的變化,就可以按照如下方法

private final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {
         @Override
           public void onReceive(Context context, Intent intent) {
               String action = intent.getAction();
                 if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
                 …
                 }
           }
   }


這種方法需要在onCreate 或者onStart中注冊該receiver所感興趣的intent,如:

registerReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);

在onStop及onDestroy中注銷監聽

registerReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);

--------------------------------------------
關機啟動receiver

在manifest中聲明

<receiver android:name=".XXXReceiver">
    <intent-filter>
        <action android:name="android.intent.action.ACTION_SHUTDOWN" />
    </intent-filter>
</receiver>
public class XXXReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ...
    }
}

可以監聽的action可以參考:
http://developer.android.com/reference/android/content/Intent.html
---------------------------------------------
activity標簽中使用的參數:
http://developer.android.com/guide/topics/manifest/activity-element.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM