如何使我的警报服务运行后台?

时间:2018-05-15 12:27:03

标签: android

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

这是我的代码

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);
}

1 个答案:

答案 0 :(得分:0)

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

创建服务

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);
} }

创建一个Application类并启动您的服务:

public class App extends Application {

@Override
public void onCreate() {
    super.onCreate();

    startService(new Intent(this, YourService.class));
}}

不要忘记在AndroidManifest.xml的“application”标签中添加它

android:name=".App"