Java 如何在前台和后台保持应用程序服务的活动状态

Java 如何在前台和后台保持应用程序服务的活动状态,java,android,sockets,client-server,background-service,Java,Android,Sockets,Client Server,Background Service,如何使我的应用程序在套接字服务器上保持连接,并在前台和后台运行。我需要从服务器接收一些通知和数据。 到目前为止,我的应用程序只有在打开时才能工作,当我关闭或仅返回时,连接才会停止 当应用程序关闭,用户再次运行应用程序并尝试再次连接到服务器时,连接不会发生,然后我需要重新启动服务器并再次连接 private ServiceConnection serviceConnection = new ServiceConnection() { @Override pu

如何使我的应用程序在套接字服务器上保持连接,并在前台和后台运行。我需要从服务器接收一些通知和数据。 到目前为止,我的应用程序只有在打开时才能工作,当我关闭或仅返回时,连接才会停止

当应用程序关闭,用户再次运行应用程序并尝试再次连接到服务器时,连接不会发生,然后我需要重新启动服务器并再次连接

    private ServiceConnection serviceConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName componentName, IBinder iBinder) {

            iSocketInterface = ISocketInterface.Stub.asInterface(iBinder);
            socketServiceBound = true;

        }
        @Override
        public void onServiceDisconnected(ComponentName componentName) {

            iSocketInterface = null;
            socketServiceBound = false;

        }
    };

    @Override
    protected void onStart() {
        super.onStart();
        // Bind to LocalService
        Intent intent = new Intent(this, SocketService.class);
        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
    }

    protected void onRestart(){
        super.onRestart();

    }

    protected void onResume(){
        super.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
    }


    @Override
    protected void onStop() {
                super.onStop();
}

您的意思是,无论应用程序是否处于活动状态,您都希望保持后台服务运行并保持活动状态。正确?可能重复@Ajay Rlogical Yes,如果应用程序已关闭,并且用户再次运行应用程序并尝试再次连接到服务器连接未发生,则我需要重新启动服务器并再次连接。无论应用程序处于活动状态还是关闭状态,您都可以保持后台服务处于活动状态。您需要作为前台启动服务。请在这里核对我的答案。这可能对你有帮助。您还可以在此处下载示例代码,以便在应用程序关闭时保持服务活动:@Ajay Rlogical我从前台开始,并使服务在应用程序关闭时运行,但我不会收到通知。只有当我的应用程序处于任务状态时,我才能接收通知(之前,我只在应用程序处于活动状态时接收通知)。是否套接字连接会导致该问题(如应用程序关闭时套接字连接失败),我不知道:(您的意思是,无论应用程序是否处于活动状态,您都希望保持后台服务运行并保持活动状态。对吗?可能重复@Ajay Rlogical是,如果应用程序已关闭,并且用户再次运行应用程序并尝试再次连接到服务器连接未发生,则我需要重新启动服务器并再次连接。您可以保留您的后台服务。)无论应用程序处于活动状态还是关闭状态,服务都处于活动状态。您需要将服务作为前台启动。请在此处检查我的答案。这可能会对您有所帮助。您也可以下载示例代码,以便在应用程序关闭时保持服务处于活动状态:@Ajay Rlogical我从前台启动,并使服务在应用程序关闭时运行,但我不接收ive通知。只有当我的应用程序处于任务状态时我才能收到通知(之前我只在应用程序处于活动状态时收到通知)。是否套接字连接会导致该问题(如应用程序关闭时套接字连接失败),我不知道:(