我已经成功地制作了我的警报服务,但问题是应用程序不是在后台运行,而是应用程序在几秒钟后通过自启动自行重新启动,所以我希望我的警报服务仅在后台运行,而不是重新启动
这是我的代码
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"