使用BroadcastReceiver實現開機自動運行的Service


為了讓Service隨應用系統啟動自動運行,可以讓BroadcastReceiver監聽Action為ACTION_BOOT_COMPLETED常量的Intent,然后在BroadcastReceiver中啟動特定的Service即可。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.sax.StartElementListener;

public class LaunchReceiver extends BroadcastReceiver{

  @Override
  public void onReceive(Context context, Intent intent) {
  Intent tIntent = new Intent(context, LaunchService.class);
    //啟動指定Service
    context.startService(tIntent);
  }

}

實現自動運行的關鍵是要讓LaunchReceiver監聽系統開機發出的廣播,因此需要在AndroidManifest.xml文件中采用如下代碼配置該BroadcastReceiver:

<!-- 定義一個BroadcastReceiver,監聽系統開機廣播 -->
<receiver android:name=".LaunchReceiver">
  <intent-filter >
    <action android:name="android.intent.action.BOOT_COMPLETED"/>
  </intent-filter>
</receiver>

除此之外,為了讓程序能訪問系統開機事件,還需要為應用程序增加權限:

<!-- 授予應用程序訪問系統開機事件的權限 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

至於程序中用到的LaunchService,則可以是用戶開發的Service,既可是監聽用戶來電的Service,也可以是監聽用戶短信、攔截黑名單電話等的Service,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM