首页 > 解决方案 > 关闭应用程序后保持服务运行

问题描述

我正在尝试创建一个与我的本地主机通信并在数据库中搜索的应用程序。
我已经建立连接并找到数据,但如果表中有任何更改,我需要保持连接并发送通知,但即使我关闭应用程序,我也无法弄清楚如何保持连接,因为它关闭一切,甚至服务。
该服务不保持开放。

这是我的课:

public class SensorService extends Service {

@Override
public IBinder onBind(Intent intent) {
    return null;
}


@Override
public void onCreate() {
    super.onCreate();
    Toast.makeText(this,"Starting",Toast.LENGTH_SHORT).show();
}


@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    boolean bandera = true;
        Toast.makeText(this, "Checking data...", Toast.LENGTH_SHORT).show();
    return START_STICKY;
}

@Override
public void onTaskRemoved(Intent rootIntent) {
    super.onTaskRemoved(rootIntent);
    stopService(new Intent(this,SensorService.class));
    startService(new Intent(this,SensorService.class));
}

@Override
public void onDestroy() {
    startService(new Intent(this,SensorService.class));
}
}

每次我关闭应用程序时,服务都会再执行一次,不再执行。

标签: androidandroid-service

解决方案


如果需要,您可以使用onTaskRemoved并重新启动服务。

@Override
public void onTaskRemoved(Intent rootIntent){
       super.onTaskRemoved(rootIntent);
       //restart your service
}

请注意,如果您使用 onTaskRemoved,请以非粘性启动您的服务,这样它就不会重新启动。

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
    return START_NOT_STICKY;
}

推荐阅读