1、intent 判斷 intent.getAction()是否與 android.intent.action.BOOT_COMPLETED 相同,發(fā)出的是這個(gè),你沒監(jiān)聽這個(gè)Action 。 另外注意的是,如果是 1以下的系統(tǒng),沒問題。
創(chuàng)新互聯(lián)專注于合山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。合山網(wǎng)站建設(shè)公司,為合山等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
2、通過上面這段話,我們可以知道,如果想讓廣播能夠發(fā)送到未啟動的應(yīng)用,必須為廣播的Intent添加FLAG_INCLUDE_STOPPED_PACKAGES標(biāo)記,但是開機(jī)廣播是系統(tǒng)發(fā)出的,我們無法修改。綜上所述,自Android1之后,App開機(jī)自啟無法實(shí)現(xiàn)。
3、以后就禁止了第三方應(yīng)用接收開機(jī)廣播。有人說應(yīng)用要打開一次后才能收到,可是經(jīng)驗(yàn)證是不行的。
4、看系統(tǒng)版本, 低于 1的版本, 無需載體 , 廣播都能夠 自動運(yùn)行 。 1以及以后的版本 ,廣播 需要有 Activity的支撐,并且運(yùn)行程序后啟動一次,重新開機(jī)才能夠啟動廣播,就這點(diǎn)區(qū)別。
5、存在一種例外,就是應(yīng)用程序被adb push you.apk /system/app/下是會自動啟動的,不處于stopped狀態(tài)。
6、有些系統(tǒng)廣播需要,addDataScheme才能收到,如mediaScanner??梢韵葟幕镜呐挪椋琤roadcastReciver重寫是否正確?IntentFilter定義是否正確?添加Action是否正正確?注冊IntentFileter也是正確?具體問題,需要看源碼才知道。
1、以后就禁止了第三方應(yīng)用接收開機(jī)廣播。有人說應(yīng)用要打開一次后才能收到,可是經(jīng)驗(yàn)證是不行的。
2、最大的可能是廣播沒有注冊 1)第一種不是常駐型廣播,也就是說廣播跟隨activity的生命周期。注意: 在activity結(jié)束前,移除廣播接收器。
3、看系統(tǒng)版本, 低于 1的版本, 無需載體 , 廣播都能夠 自動運(yùn)行 。 1以及以后的版本 ,廣播 需要有 Activity的支撐,并且運(yùn)行程序后啟動一次,重新開機(jī)才能夠啟動廣播,就這點(diǎn)區(qū)別。
4、如果你關(guān)過機(jī)的話還是建議你加上 action android:name=android.intent.action.BOOT_COMPLETED/ ,然后再試試,希望可以幫到你。
如果activity里沒有動態(tài)注冊監(jiān)聽service發(fā)出的ActionS的廣播, 即使Activity當(dāng)前在使用中也不會得到通知, 更不用說未啟動的Activity來捕獲這個(gè)通知了。
具體的看不出來是你代碼哪行出的異常,有兩種可能,一是在 onDestroy里面你要調(diào)用一下超類的super.onDestroy()一下,二是你的service綁定和解除綁定這塊可能有問題。
Android中,當(dāng)Service被kill后,如果重啟需要使用BroadcastReceiver來實(shí)現(xiàn),即廣播接收者,例如利用BroadcastReceiver注冊網(wǎng)絡(luò)廣播或者開關(guān)機(jī)廣播,當(dāng)接收到廣播后直接啟動service,這樣就可以保證service被kill后,自動啟動。
服務(wù)是長時(shí)間連接,可以做耗時(shí)操作,例如用服務(wù)控制音樂的播放等。廣播需要注冊,有兩種方式,一個(gè)在配置文件里面,一個(gè)是代碼注冊、服務(wù)是寫一個(gè)類繼承服務(wù),然后在里面寫你的操作,外圍實(shí)例化服務(wù),去啟動服務(wù)。
注意:intent-fliter和actio等子標(biāo)簽是對于廣播接收receiver的,不是針對服務(wù)service的,所以去掉intent-fliter等子標(biāo)簽。改成:Service android:name=.Music /Service 就行了。
如果service節(jié)點(diǎn)不見了,那么你調(diào)用service的時(shí)候,應(yīng)用應(yīng)該會崩潰吧。Android0以后好像是有了一定的安全機(jī)制了,如果不是設(shè)備內(nèi)置的系統(tǒng)應(yīng)用,有些功能無法使用。