如何让我的告警服务后台运行?



我已经成功地制作了我的警报服务,但问题是应用程序不是在后台运行,而是应用程序在几秒钟后通过自启动自行重新启动,所以我希望我的警报服务仅在后台运行,而不是重新启动

这是我的代码

Intent alarm = new Intent(this.context, AlarmReceiver.class);
boolean alarmRunning = (PendingIntent.getBroadcast(this.context, 0, alarm, PendingIntent.FLAG_NO_CREATE) != null);
if(alarmRunning == false) {
Intent intent = new Intent(this, MainActivity.class);
pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 1000, pendingIntent);
}

您必须在应用程序类中启动服务才能始终运行它。如果这样做,您的服务将始终运行。即使用户从任务管理器终止应用或强制停止应用,应用也会重新开始运行。

创建服务

public class YourService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// do your jobs here
return super.onStartCommand(intent, flags, startId);
} }

创建一个应用程序类并启动您的服务:

public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
startService(new Intent(this, YourService.class));
}}

不要忘记将其添加到AndroidManifest的"应用程序"标签中.xml

android:name=".App"

最新更新