返回上一页时 android 应用中的服务连接泄漏

Service Connection Leak in android app when back to a previous page

你好,我正在开发一个打卡出勤应用程序,它有一个定时器服务,当用户打卡时运行。我遇到的问题是当我启动服务然后按下 phone 到 return 到上一页 我发现服务连接泄漏,我不确定如何解决这个问题,因为它似乎停止了服务。

//onStart - 在服务中启动计时器 class

     public int onStartCommand(Intent intent, int flags, int startId) {
            manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            displayNotification("Clock in timer started");
            clockTask = new TimerTask() {
                public void run() {
                    seconds++;
                }
            };
            startCounter();

            return START_STICKY;
        }

//onDestroy to stop the service and counter
 public void onDestroy() {
        super.onDestroy();
        long mins = seconds/60;
        seconds%=60;
        long hours = mins/60;
        mins%=60;
        stopCounter();
        // manager.cancel(R.string.notification);
        displayNotification("Clocked out after : "+""+hours+":"+mins+":"+String.format("%02d",seconds));
        //seconds = 0L;
    }

//我如何在 activity class

中绑定意图
   Intent i = new Intent(this, StartTimerService.class);
        bindService(i, seamysConnection, Context.BIND_AUTO_CREATE);

enter image description here

任何帮助将不胜感激

当 Android OS 破坏 Activity 并发现 A ServiceConnection 仍然绑定到 运行 Service 时,就会发生这种情况,所以你在销毁您的 Activity 之前需要 Unbind 服务(返回上一页 )

解绑服务器

unbindService(seamysConnection);

注:

您应该使用相同的 context 绑定服务和解除绑定服务。如果您将服务与 getApplicationContext() 绑定,那么您还应该使用 getApplicationContext.unbindService(..)