android開機(jī)自啟動原理與實(shí)現(xiàn)案例(附源碼)
更新時(shí)間:2013年06月08日 11:15:23 作者:
完成一下步驟后,啟動一次程序,完成注冊。等下次手機(jī)開機(jī)時(shí),該軟件即會自動啟動,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈
原理:
Android系統(tǒng)通過應(yīng)用程序自行在系統(tǒng)中登記注冊事件(即Intent)來響應(yīng)系統(tǒng)產(chǎn)生的各類消息。 Android系統(tǒng)為應(yīng)用程序管理功能提供了大量的API,通過配置Intent和permission來實(shí)現(xiàn)各種功能。
開機(jī)自啟動是通過
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME" />
</intent-filter>
和權(quán)限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>實(shí)現(xiàn)。
舉例:
1.新建一個廣播接收器的類:[Java]
/*
* $filename: BootBroadcastReceiver.java,v $
* $Date: 2013-6-7 $
* Copyright (C) ZhengHaibo, Inc. All rights reserved.
* This software is Made by Zhenghaibo.
*/
package njupt.zhb.startyouself;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/*
*@author: ZhengHaibo
*web: http://blog.csdn.net/nuptboyzhb
*mail: zhb931706659@126.com
*2013-6-7 Nanjing,njupt,China
*/
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String action_boot="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(action_boot)){
Intent StartIntent=new Intent(context,MainActivity.class); //接收到廣播后,跳轉(zhuǎn)到MainActivity
StartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(StartIntent);
}
}
}
2.在Manifest.xml文件中注冊廣播接收機(jī),并且配置權(quán)限
注冊廣播接收機(jī):
<!-- 注冊系統(tǒng)廣播接收器 -->
<receiver android:name=".BootBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
添加權(quán)限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
完成上述步驟后,啟動一次程序,完成注冊。等下次手機(jī)開機(jī)時(shí),該軟件即會自動啟動。
擴(kuò)展:不僅可以自動啟動Activity,也可以啟動一個后臺服務(wù)(Service),只需要修改接收機(jī)中onReceive函數(shù)中的內(nèi)容即可!
項(xiàng)目的源代碼下載
Android系統(tǒng)通過應(yīng)用程序自行在系統(tǒng)中登記注冊事件(即Intent)來響應(yīng)系統(tǒng)產(chǎn)生的各類消息。 Android系統(tǒng)為應(yīng)用程序管理功能提供了大量的API,通過配置Intent和permission來實(shí)現(xiàn)各種功能。
開機(jī)自啟動是通過
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME" />
</intent-filter>
和權(quán)限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>實(shí)現(xiàn)。
舉例:
1.新建一個廣播接收器的類:[Java]
復(fù)制代碼 代碼如下:
/*
* $filename: BootBroadcastReceiver.java,v $
* $Date: 2013-6-7 $
* Copyright (C) ZhengHaibo, Inc. All rights reserved.
* This software is Made by Zhenghaibo.
*/
package njupt.zhb.startyouself;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/*
*@author: ZhengHaibo
*web: http://blog.csdn.net/nuptboyzhb
*mail: zhb931706659@126.com
*2013-6-7 Nanjing,njupt,China
*/
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String action_boot="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(action_boot)){
Intent StartIntent=new Intent(context,MainActivity.class); //接收到廣播后,跳轉(zhuǎn)到MainActivity
StartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(StartIntent);
}
}
}
2.在Manifest.xml文件中注冊廣播接收機(jī),并且配置權(quán)限
注冊廣播接收機(jī):
復(fù)制代碼 代碼如下:
<!-- 注冊系統(tǒng)廣播接收器 -->
<receiver android:name=".BootBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
添加權(quán)限:
復(fù)制代碼 代碼如下:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
完成上述步驟后,啟動一次程序,完成注冊。等下次手機(jī)開機(jī)時(shí),該軟件即會自動啟動。
擴(kuò)展:不僅可以自動啟動Activity,也可以啟動一個后臺服務(wù)(Service),只需要修改接收機(jī)中onReceive函數(shù)中的內(nèi)容即可!
項(xiàng)目的源代碼下載
您可能感興趣的文章:
- Android的權(quán)限設(shè)置及自啟動設(shè)置方法
- android開機(jī)自啟動apk的方法
- android開機(jī)自啟動APP及使用adb命令測試方法
- Android 代碼設(shè)置開機(jī)自啟動App的方法
- Android開機(jī)自啟動服務(wù)的實(shí)現(xiàn)方法
- android開機(jī)自啟動app示例分享
- Android應(yīng)用實(shí)現(xiàn)安裝后自啟動的方法
- android引導(dǎo)用戶開啟自啟動權(quán)限的方法
- Android開機(jī)自啟動程序詳解
- android studio開發(fā)實(shí)現(xiàn)APP開機(jī)自啟動
相關(guān)文章
Android 選擇相冊照片并返回功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 從相冊中選擇照片并返回功能,需要的朋友可以參考下2018-03-03
Kotlin1.6.20新功能Context?Receivers使用技巧揭秘
這篇文章主要為大家介紹了Kotlin1.6.20功能Context?Receivers使用揭秘,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
android中ViewPager結(jié)合Fragment進(jìn)行無限滑動
本篇文章中主要介紹了android中ViewPager結(jié)合Fragment進(jìn)行無限滑動,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Android Studio 3.0 新功能全面解析和舊項(xiàng)目適配問題
Android Studio是Android的官方IDE。接下來通過本文給大家分享Android Studio 3.0 新功能全面解析和舊項(xiàng)目適配問題,需要的朋友可以參考下2017-11-11
Android實(shí)現(xiàn)為Tab添加Menu的方法
這篇文章主要介紹了Android實(shí)現(xiàn)為Tab添加Menu的方法,分析了兩種解決方法的思路并對比分析了相應(yīng)的優(yōu)缺點(diǎn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
Android客戶端post請求服務(wù)器端實(shí)例
這篇文章主要介紹了Android客戶端post請求服務(wù)器端實(shí)例,本文講解了Android客戶端與服務(wù)器端通信方式、解析服務(wù)器端返回?cái)?shù)據(jù)的解釋、用GET和POST訪問http資源等內(nèi)容,并給出了一個POST實(shí)例,需要的朋友可以參考下2015-06-06
Android實(shí)現(xiàn)動態(tài)高斯模糊效果
在Android開發(fā)中常常會用到高斯模糊,但有的時(shí)候我們可能會需要一個圖片以不同的模糊程度展現(xiàn)出來,那如何實(shí)現(xiàn)呢,一起通過本文來學(xué)習(xí)學(xué)習(xí)吧。2016-08-08
Flutter實(shí)現(xiàn)可循環(huán)輪播圖效果
這篇文章主要介紹了Flutter實(shí)現(xiàn)可循環(huán)輪播圖效果,本文圖文并茂通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-07-07
Android onNewIntent()觸發(fā)機(jī)制及注意事項(xiàng)
這篇文章主要介紹了Android onNewIntent()觸發(fā)機(jī)制及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2016-09-09

