android 开机自启动服务功能

    这个实现起来其实相当简单,没做过的人只是有点怀疑而已。有一个原理明白了即可,安装程序后,程序所带的服务也会带入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>



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值