android 開機自啟動應用 (詳細)
阿新 • • 發佈:2019-01-21
android 4.0以後 android就可以實現開機自啟動app了。下面我說一下操作原理:
android可以通過 receiver 接收者來接收 android 開機廣播實現開機自動。這樣我們就有機可乘了,放一個 service 在 receiver 中,然後通過這個服務中寫程式碼來啟動app。
下面上程式碼吧。
1、寫出接收廣播
public class BootCompletedReceiver extends BroadcastReceiver { //重寫onReceive方法 @Override public void onReceive(Context context,2、在AndroidManifest.xml中註冊廣播Intent intent) { //後邊的XXX.class就是要啟動的服務 Intent service = new Intent(context, ServiceCrack.class); context.startService(service); Log.v("TAG", "開機自動服務自動啟動....."); } }
<receiver android:name=".receiver.BootCompletedReceiver"> <intent-filter> <receiver和service 是和activity同級別的哦 , 別放錯地方了action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver>
3、編寫自己的service
public class ServiceCrack extends Service { public ServiceCrack4、在AndroidManifest.xml中註冊服務(){ super(); } public IBinder onBind(Intent arg0){ //這是Service必須要實現的方法,目前這裡面什麼都沒有做 //只是在onCreate()方法中列印了一個log便於測試 return null; } public void onCreate(){ super.onCreate(); Intent intent=new Intent(ServiceCrack.this, WelcomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); Log.d("TAG2","test service"); } }
<service android:name = ".receiver.ServiceCrack"> </service>receiver和service 是和activity同級別的哦 , 別放錯地方了
5、當然得有許可權了啊 (重要)
<!--開機自啟動--> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>