想要实现一个自启动的功能,要扑捉系统的开机广播,我理解成时系统启动的广播通知:
不说了,直接上代码:
扑捉系统启动广播通知的类。 要继承系统 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" />