zoukankan      html  css  js  c++  java
  • Android : 使一个Serviec 开机自启动!

       想要实现一个自启动的功能,要扑捉系统的开机广播,我理解成时系统启动的广播通知:

       不说了,直接上代码:

      扑捉系统启动广播通知的类。 要继承系统  BroadcastReceiver类, 并且实现

    public void onReceive(Context aContext, Intent aIntent),还是看下边的代码:
    package com.amir.bootflag;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class BootMointor extends BroadcastReceiver {
    
    	public void onReceive(Context aContext, Intent aIntent) {
    		if (aIntent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
    			Intent in = new Intent(aContext, BufferServices.class); 
    			in.setAction("com.amir.bootflag.BUFFER_SERVICES");
    			aContext.startService(in);
    		}
    	}
    
    }
    


      实现要启动的Service 的类:

    package com.amir.bootflag;
    
    import com.amir.dbbuf.service.Md_0XEECMD_;
    import com.amir.dbbuf.service.OX_ECMD_Service;
    
    import android.app.Service;
    import android.content.Intent;
    import android.os.IBinder;
    import android.util.Log;
    
    public class BufferServices extends Service{
    
    	public IBinder onBind(Intent arg0) {
    		return null;
    	}
    
    	public void onCreate() {
    		super.onCreate();
    		Log.v("<====>", "onCreate");
    	}
    
    	public void onDestroy() {
    		super.onDestroy();
    		Log.v("<====>", "onDestroy");
    	}
    
    	public void onStart(Intent intent, int startId) {
    		super.onStart(intent, startId);
    		System.out.println("OnStart Service");
    		OX_ECMD_Service ecmd = new OX_ECMD_Service(this.getBaseContext());
    		Md_0XEECMD_ o1 = new Md_0XEECMD_();
    		System.out.println("databases object");
    		o1.setiCmdTypeField(0);
    		o1.setiPrimaryKeyField(1);
    		o1.setiReasonField(0);
    		o1.setiYnField(1);
    		
    		ecmd.InsertL(o1);
    	}
    
    	public int onStartCommand(Intent intent, int flags, int startId) {
    		Log.v("<====>", "onStartCommand");
    		return super.onStartCommand(intent, flags, startId);
    	}
    
    }
    


      咱们再看看 AndroidManifest.xml 里,要写一些什么:

    <service android:name="com.amir.bootflag.BufferServices">
    			<intent-filter>
    				<action android:name="com.amir.bootflag.BUFFER_SERVICES" />
    				<category android:name="android.intent.category.DEFAULT" />
    			</intent-filter>
    		</service>
    
    		<receiver android:name="BootMointor">
    			<intent-filter>
    				<action android:name="android.intent.action.BOOT_COMPLETED" />
    			</intent-filter>
    		</receiver>
    


    要想扑捉系统启动的广播通知,需要添加下边的权限:

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

  • 相关阅读:
    DES算法
    流密码_电子科大慕课笔记_七八讲
    王道考研《2019年操作系统考研复习指导》第一章笔记
    欧拉公式C++实现
    编译原理第一章学习笔记
    leetcode 728. Self Dividing Numbers
    leetcode 942. DI String Match
    2019年第十届蓝桥杯JAVA开发A组第二题
    2019年第十届蓝桥杯JAVA开发A组第一题
    python类的内置方法
  • 原文地址:https://www.cnblogs.com/nobileamir/p/1994132.html
Copyright © 2011-2022 走看看