创建一个broadcast receiver来接收开机的广播并在接收到广播后启动你的服务器。将这个broadcast receiver注册在manifest中并添加开机启动的权限。
以下是一个例子。
首先,你需要的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
然后创建一个广播接收者并在接收到开机完成广播后启动你的服务
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
//启动你的服务
context.startService(new Intent(context, YourServerClass.class));
}
}
}
然后在你的manifest中注册broadcast receiver
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
这里的YourServerClass就是你的服务器类。
注意:从Android 8.0开始,后台服务的启动受到了限制,如果应用在后台,就不能启动服务,必须让用户知道你启动了一个服务,前台服务比后台服务更不容易被系统杀死。所以从Android 8.0开始,推荐使用startForegroundService启动服务,并在创建服务后的五秒内,调用startForeground函数。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/170050.html