android 后台service开机自启动

比如说,新闻客户端,IM聊天工具,关机开机之后,需要后台的服务启动,来收到最新的推送或者消息。或者这个service要做其他事情,总之要能够开机自启。每当服务启动的时候,我们启动一个通知栏,代码如下:

public class MyService  extends Service{

	@Override
	public IBinder onBind(Intent arg0) {
		// TODO Auto-generated method stub
		return null;
	}
	
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
		Notification notification = new Notification(R.drawable.ic_launcher, "myService", System.currentTimeMillis());
		Intent notificationIntent  = new Intent(this,MainActivity.class);
		PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, 0);
		notification.setLatestEventInfo(getApplicationContext(), "this is title ", "this is content ", pendingIntent);
		startForeground(1, notification);
		Log.e("myService", "onCreate");
		
	}

}
界面很简答,start这个service就行,主要是设置权限:

 <service android:name = ".MyService">
            </service>
            
          <receiver android:name=".BootBroadcastReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>
用一个广播来接收,开机的Intent,收到这个广播之后,直接启动service就行了。

public class BootBroadcastReceiver extends BroadcastReceiver {
    static final String action_boot="android.intent.action.BOOT_COMPLETED"; 
 
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(action_boot)){ 
            Intent intentService = new Intent(context, MyService.class);
    	
    		context.startService(intentService);
        }
 
    }
 
}

好了,代码已经完成了,除了主Activity,你自己去启动就可以了,记得添加权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

还有receiver里一定要添加:

  <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>

还要记得要在安全中心里设置,这个应用开机自启哦。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值