Android 开机自动启动服务

      当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED, 只要在程序中“捕捉”到这个消息,再启动之即可, 所以我们在自己应用里面添加 一个广播接收就可以达到开机启动的目的.

  在 AndroidManifest.xml 里面注册服务,还有 广播接收,于开机启动!!!!!

 


1.  BootBroadcastReceiver.java  用于接收到广播后的处理,通过Intent启动服务或者其activity 等操作

package com.tianfeng.bootstartdemo;




import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;


public class BootBroadcastReceiver extends BroadcastReceiver{
private static final String ACTION = "android.intent.action.BOOT_COMPLETED";
  private final static String TAG = "BootBroadcastReceiver";


@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub

if(intent.getAction().equals(ACTION))
{
        Log.e(TAG, "try to start demo servers");
Intent mDemoService=new Intent();//启动服务
mDemoService.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mDemoService.setClass(context, StartBootDemoServer.class);
context.startService(mDemoService);  

}

}


}

2.  StartBootDemoServer.java 

package com.tianfeng.bootstartdemo;


import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.Log;


public class StartBootDemoServer extends Service{

private final static String TAG = "StartBootDemoServer";


@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onStart(Intent intent, int startId){
while(true){
Log.i(TAG, "==============tianfeng I am demo Run===============");
SystemClock.sleep(1000);
}
}


}

3. AndroidManifest.xml

    package="com.tianfeng.bootstartdemo"
    android:versionCode="1"
    android:versionName="1.0" >


            android:minSdkVersion="8"
        android:targetSdkVersion="15" />


            android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
                    android:name=".StartDemo"
            android:label="@string/title_activity_start_demo" >
           
               


               
           

       

       

       
   
       
   

   


   



4. 开机后通过logcat 可以看见没1秒输出: ==============tianfeng I am demo Run===============


Demo 下载地址:  Demo.rar

    


  

你可能感兴趣的:(Android学习)