1. 程式人生 > >android 開機自啟動應用 (詳細)

android 開機自啟動應用 (詳細)

android 4.0以後 android就可以實現開機自啟動app了。下面我說一下操作原理:

android可以通過 receiver 接收者來接收 android 開機廣播實現開機自動。這樣我們就有機可乘了,放一個 service 在 receiver 中,然後通過這個服務中寫程式碼來啟動app。

下面上程式碼吧。

1、寫出接收廣播

public class BootCompletedReceiver extends BroadcastReceiver {
    //重寫onReceive方法
@Override
public void onReceive(Context context, 
Intent intent) { //後邊的XXX.class就是要啟動的服務 Intent service = new Intent(context, ServiceCrack.class); context.startService(service); Log.v("TAG", "開機自動服務自動啟動....."); } }
2、在AndroidManifest.xml中註冊廣播
<receiver android:name=".receiver.BootCompletedReceiver">
    <intent-filter>
        <
action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver>
receiver和service 是和activity同級別的哦  , 別放錯地方了

3、編寫自己的service 

public  class ServiceCrack extends Service {
    public ServiceCrack
(){ 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"); } }
4、在AndroidManifest.xml中註冊服務
<service
android:name = ".receiver.ServiceCrack">
</service>
receiver和service 是和activity同級別的哦  , 別放錯地方了

5、當然得有許可權了啊 (重要)

<!--開機自啟動-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>