android 开机自启动服务功能

来源:互联网 发布:昆山商铺版软件销售商 编辑:程序博客网 时间:2024/05/01 12:51

    这个实现起来其实相当简单,没做过的人只是有点怀疑而已。有一个原理明白了即可,安装程序后,程序所带的服务也会带入android系统中,可以把它想象成独立于程序的另一个东东。

 

    写一个广播,监听开机,这个广播也是在程序中的,但可以想象成独立于程序的另一个东东。也就是,不开启程序,这些广播和服务也是管用的,跟程序开不开启没有关系。

 

 

具体做法:只要安装了程序,程序里面已经写了服务与广播,就好了,开机后,广播会接收到已开机,就按要求完成具体操作,本例中就是开启服务,事实上,开启服务也是广播最广泛的作用,服务中则可以做任何操作。

 

public class BootReceiver extends BroadcastReceiver {    private PendingIntent mAlarmSender;    @Override    public void onReceive(Context context, Intent intent) {        // 在这里干你想干的事(启动一个Service,Activity等),本例是启动一个定时调度程序,每30分钟开启一次服务,服务从头开始执行功能到执行结束        mAlarmSender = PendingIntent.getService(context, 0, new Intent(context,                RefreshDataService.class), 0);        long firstTime = SystemClock.elapsedRealtime();        AlarmManager am = (AlarmManager) context                .getSystemService(Activity.ALARM_SERVICE);        am.cancel(mAlarmSender);        am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,                30 * 60 * 1000, mAlarmSender);    }}


 

 

当然,服务和广播都需要注册在配置文件AndroidManifest.xml中:

<receiver android:name=".service.BootReceiver">    <intent-filter>    <!-- 系统启动完成后会调用-->    <action android:name="android.intent.action.BOOT_COMPLETED">    </action>    </intent-filter></receiver>


 

原创粉丝点击