<p> Android的自啟動類似于Windows的開機啟動,允許開發者讓自己的APP在開機的時候做一些操作,如啟動一個后臺的Service、發送一條通知甚至是啟動一個Activity界面等。</p>
1、寫一個廣播類
<p>新建一個廣播類:</p>
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//標準的寫法是需要判別Action的類型的
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
//你想執行的操作
}
}
}
2、添加Manifest配置
配置廣播監聽器 (如果不是AndroidStudio的話,你可能需要把name改成BootReceiver的完整路徑):
<receiver
android:name=".BootReceiver"
android:enabled="true">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
添加權限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
經過以上配置,你的APP已經可以在開機時執行你的自定義操作了,但是在一些國產系統上,會有自帶的安全管理軟件對開機啟動進行管理,如果安全管理軟件內屏蔽了APP的自啟動,那么你的APP仍然無法自動啟動。另外,在開機時發送通知和啟動Activity是一件非常影響用戶體驗的是事,需要謹慎考慮。
3、其他相關系統廣播
有開機廣播,自然也有關機廣播和重啟廣播
- 關機廣播(沒有權限)
<action android:name="android.intent.action.ACTION_SHUTDOWN"/>
- ** 重啟廣播**
重啟時也會先發送ACTION_SHUTDOWN廣播
<action android:name="android.intent.action.REBOOT"/>
重啟完成權限(需要監聽重啟完成的權限)
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>