Android 使用onStartCommand进行保活详细代码,并调用
时间: 2024-02-02 16:02:57 浏览: 95
好的,下面是一个简单的 Android 服务保活的示例代码,使用 onStartCommand 方法实现:
```java
public class KeepAliveService extends Service {
private static final String TAG = "KeepAliveService";
private static final int SERVICE_ID = 1001;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand() called");
// 在此处启动一个前台服务,提高服务优先级
startForeground(SERVICE_ID, new Notification());
// 启动一个定时器,每隔一段时间发送一次广播,让系统知道服务仍在运行
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("com.example.KeepAliveBroadcast");
sendBroadcast(broadcastIntent);
}
}, 0, 10000); // 每隔10秒发送一次广播
// 返回 START_STICKY,表示系统会尝试重启服务,以便保活
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy() called");
// 在此处停止定时器,并取消前台服务
stopForeground(true);
}
}
```
要调用该服务,可以在 Activity 中使用以下代码:
```java
Intent intent = new Intent(this, KeepAliveService.class);
startService(intent);
```
这将启动服务,并使其在后台运行,即使应用已经被关闭或者手机屏幕已经关闭,该服务仍然可以继续运行,并执行相应的保活操作。
阅读全文