Android 開(kāi)機(jī)自啟動(dòng)Service實(shí)現(xiàn)詳解
1、修改AndroidManifest.xml文件
// 添加接收開(kāi)機(jī)廣播的權(quán)限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
// 注冊(cè)接收開(kāi)機(jī)廣播的receiver
<receiver android:name=".BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</receiver>
//注冊(cè)需要啟動(dòng)的Service
<service
android:name=".TestService"
android:exported="true"
android:process="com.test.service">
<intent-filter>
<action android:name="com.test.Service" />
</intent-filter>
</service>2、recerver中啟動(dòng)service
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 mintent = new Intent(context, TestService.class);
context.startService(mintent);
}
}
}
3、去掉該服務(wù)APP的桌面圖標(biāo)
正常APP安裝后,在Launcher中會(huì)顯示圖標(biāo),由于我們的應(yīng)用是個(gè)后臺(tái)服務(wù),所以不需要顯示圖標(biāo),不顯示桌面圖標(biāo)有兩種方式
第一種
去掉Manifest文件中的<category android:name="android.intent.category.LAUNCHER" />該屬性
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>備注這種做法在調(diào)試時(shí),不能通過(guò)編輯器直接運(yùn)行,需要編譯成APK,再手動(dòng)安裝到設(shè)備中。
第二種
在activity的<intent-filter>標(biāo)簽中添加<data android:scheme="com.****.****"/>
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
// "com.****.****"為應(yīng)用包名
<data android:scheme="com.****.****"/>
</intent-filter>
</activity>備注這種做法在調(diào)試時(shí),可以直接在編輯器中運(yùn)行,相對(duì)方便一些,兩種方式均可以隱藏桌面圖標(biāo)。
4、將APP放到/system/app目錄下
在Android3.1之后,系統(tǒng)為了加強(qiáng)安全性控制,應(yīng)用程序安裝后或是(設(shè)置)應(yīng)用管理中被強(qiáng)制關(guān)閉后處于stopped狀態(tài),在這種狀態(tài)下接收不到任何廣播。對(duì)于android3.1以后版本,如果要應(yīng)用接收開(kāi)機(jī)廣播有兩種方法:
a).將應(yīng)用預(yù)置到/system/app/目錄。
b).安裝應(yīng)用后先啟動(dòng)一次。(應(yīng)用只要啟動(dòng)過(guò)一次,就不處于stopped狀態(tài))
以上就是Android 開(kāi)機(jī)自啟動(dòng)Service實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Android 開(kāi)機(jī)自啟動(dòng)Service的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Android?Service啟動(dòng)綁定流程詳解
- Android布局控件View?ViewRootImpl?WindowManagerService關(guān)系
- android?微信搶紅包工具AccessibilityService實(shí)現(xiàn)詳解
- Android?O對(duì)后臺(tái)Service限制詳解
- Android?NotificationListenerService通知監(jiān)聽(tīng)服務(wù)使用
- Android?NotificationListenerService?通知服務(wù)原理解析
- Android開(kāi)發(fā)InputManagerService創(chuàng)建與啟動(dòng)流程
- Android 10 啟動(dòng)之servicemanager源碼解析
相關(guān)文章
Android中src和background的區(qū)別詳解
這篇文章主要介紹了Android中src和background的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2016-09-09
Android實(shí)現(xiàn)狀態(tài)欄白底黑字效果示例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)狀態(tài)欄白底黑字效果的相關(guān)資料,實(shí)現(xiàn)后的效果非常適合日常開(kāi)發(fā)中使用,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
Kotlin 匿名類實(shí)現(xiàn)接口和抽象類的區(qū)別詳解
這篇文章主要介紹了Kotlin 匿名類實(shí)現(xiàn)接口和抽象類的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android實(shí)現(xiàn)右邊抽屜Drawerlayout效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)右邊抽屜Drawerlayout效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
朋友圈實(shí)現(xiàn)圖片+文字轉(zhuǎn)發(fā)功能(必看篇)
下面小編就為大家?guī)?lái)一篇朋友圈實(shí)現(xiàn)圖片+文字轉(zhuǎn)發(fā)功能(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Android學(xué)習(xí)筆記之ActionBar Item用法分析
這篇文章主要介紹了Android學(xué)習(xí)筆記之ActionBar Item用法,結(jié)合實(shí)例形式分析了ActionBar Item的具體功能與相關(guān)使用技巧,需要的朋友可以參考下2017-05-05

