Android 開機自動啟動一個Service
阿新 • • 發佈:2019-02-19
最近在做一個語音識別的程式,該程式應該是沒有介面的,隨著系統的啟動而開始執行,生命週期伴隨著整個系統的週期,永遠在後臺執行,因此需要做一個Service一直執行。
下面簡單的介紹一下。首先是AndroidManifest.xml
新增許可權:
下面簡單的介紹一下。首先是AndroidManifest.xml
新增許可權:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
宣告類:新建兩個類<receiver android:name=".BootBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver> <service android:name=".AiService"> <intent-filter> <action android:name="com.caratech.ai.aiservice" /> </intent-filter> </service>
BootBroadcastReceiver.java
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent service = new Intent(context, AiService.class); context.startService(service); } }
AiService.java
import android.app.Service; import android.content.Intent; public class AiService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); } @Override public void onDestroy() { super.onDestroy(); } }