版權聲明:本文為博主原創文章,轉載需注明出處。 https://blog.csdn.net/github_27263697/article/details/77848177
項目背景:在錄像過程中,遇到關機事件,想要監聽關機操作,從而停止錄像,退出程序。
一、監聽開機廣播
Android系統啟動完成后會發出啟動完成廣播(android.intent.action.BOOT_COMPLETED),所有注冊了接收啟動完成廣播的接收器(BroadcastReceiver)都會收到此廣播。
1、在AndroidManifest.xml文件里添加授予應用程序訪問系統開機事件的權限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2、編寫系統發出的開機啟動完成廣播的接收器。自定類繼承BroadcastReceiver類,代碼如下:
public class BootBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "BootBroadcastReceiver";
private static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_BOOT)) { //開機啟動完成后,要做的事情
Log.i(TAG, "BootBroadcastReceiver onReceive(), Do thing!");
}
}
}
3、在AndroidManifest.xml文件里注冊廣播接收器
<receiver android:name="com.android.test.BootBroadcastReceiver" >
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
二、監聽關機廣播
Android系統提供了與開機廣播對應的關機廣播,在系統即將關閉時發出此廣播。
1、編寫在系統即將關閉時發出的廣播的接收器。自定類繼承BroadcastReceiver類,代碼如下:
public class ShutdownBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "ShutdownBroadcastReceiver";
private static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";
@Override
public void onReceive(Context context, Intent intent) { //即將關機時,要做的事情
if (intent.getAction().equals(ACTION_SHUTDOWN)) {
Log.i(TAG, "ShutdownBroadcastReceiver onReceive(), Do thing!");
}
}
}
2、在AndroidManifest.xml文件里注冊廣播接收器
<receiver android:name="com.android.test.ShutdownBroadcastReceiver" >
<intent-filter >
<action android:name="android.intent.action.ACTION_SHUTDOWN" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
注:開機關機操作有三種方式:
1、重新啟動,關閉后立刻又開機。
開機啟動完成和即將關機時發出的廣播,都可以接收到。
2、單純關機操作
即將關機時發出的廣播接收不到。
3、單純開機操作
開機啟動完成發出的廣播時可以接收到的。
---------------------
作者:大口霞
來源:CSDN
原文:https://blog.csdn.net/github_27263697/article/details/77848177?utm_source=copy
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!