有很過狀況都須要Android程序開機自啓,也就是在手機開機以後立刻執行相應的Android程序。android
實現的方法就是,在手機開機的時候接受相應的廣播,在Android程序中接受相應的廣播。安全
第1步:創建自定義的BroadcastReceiver類。app
1 package com.example.autostart; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.widget.Toast; 7 8 public class BootupReceiver extends BroadcastReceiver { 9 10 @Override 11 public void onReceive(Context context, Intent intent) { 12 Toast.makeText(context, "App started", Toast.LENGTH_LONG).show(); 13 // ---start the main activity of our app--- 14 15 Intent i = new Intent(context, MainActivity.class); 16 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 17 context.startActivity(i); 18 } 19 }
第2步:修改AndroidManifest.xml文件。ide
添加收取到開機廣播的權限。spa
1 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
註冊自定義的BroadcastReceiver類。code
1 <receiver android:name=".BootupReceiver" > 2 <intent-filter> 3 <action android:name="android.intent.action.BOOT_COMPLETED" /> 4 5 <category android:name="android.intent.category.DEFAULT" /> 6 </intent-filter> 7 </receiver>
這樣就基本完成了,我在電腦的AVD上實驗也成功了。但在我手機上開機沒有效果,我在手機管家中也設置了相應的權限,但就是不成功。在我把手機上安全軟件卸載後,程序自啓動成功了,我分析是安裝的手機管家在接受開機廣播後,就廣播結束了。xml