BroadcastReceiver(广播接收器):发出广播让服务器去接收
BootReceiver.java
package com.example.chenshuai.test321; import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log; public class BootReceiver extends BroadcastReceiver {
public BootReceiver() { Log.e("TAG","构造开机完成广播接收器");
} @Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
//throw new UnsupportedOperationException("Not yet implemented"); //启动服务
context.startService(new Intent(context,BootService.class)); Log.e("TAG", "广播接收器自动启动Service"); }
}
Service:接收广播传过来的意图
BootService.java
package com.example.chenshuai.test321; import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log; public class BootService extends Service {
public BootService() {
} @Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
//throw new UnsupportedOperationException("Not yet implemented"); return null;
} @Override
public void onCreate() {
super.onCreate(); Log.e("TAG","服务自动启动了");
}
}
在manifest.xml中调至相同频率/同时设置权限
<!--接收开机完成的广播权限-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <service
android:name=".BootService"
android:enabled="true"
android:exported="true" /> <receiver
android:name=".BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>