Android 从不同活动的服务中获取价值

Android 从不同活动的服务中获取价值,android,Android,您好,我正在尝试制作一个时间计数器,该计数器应在后台或当用户离开活动时在应用程序上工作 它工作得很好,我可以从我的服务中获得时间,让他在后台运行应用程序 我的问题是,当我离开绑定服务的活动并重新输入该活动时,同一个服务变量会得到不同的值 当我第一次调用startTime()时,我的两个日志调用log.I(“时间2”,时间+”)和log.I(“时间”,时间+”)。当我离开活动并重新输入它时,我会得到日志,日志中的log.I(“时间2”,时间+”)保持正确的时间,但log.I(“时间”,时间+”)始

您好,我正在尝试制作一个时间计数器,该计数器应在后台或当用户离开活动时在应用程序上工作

它工作得很好,我可以从我的服务中获得时间,让他在后台运行应用程序

我的问题是,当我离开绑定服务的活动并重新输入该活动时,同一个服务变量会得到不同的值

当我第一次调用
startTime()
时,我的两个日志调用
log.I(“时间2”,时间+”)
log.I(“时间”,时间+”)
。当我离开活动并重新输入它时,我会得到日志,日志中的
log.I(“时间2”,时间+”)
保持正确的时间,但
log.I(“时间”,时间+”)
始终显示0

如何获取上次启动服务时的
time

这是我的服务代码:

public class OnTheWayCounterService extends Service{

    long time;
    boolean stopThread;
    private final IBinder mBinder = new LocalBinder();

    public boolean isRunning()
    {
        return !stopThread;
    }

    public void stopTime()
    {
        stopThread = true;  
        time = 0;
    }

    public void startTime()
    {
        stopThread = false;
        startStopWatch();
        time = 0;
    }

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return mBinder;
    }

    public void startStopWatch()
    {

        Handler handler = new Handler();

        handler.postDelayed(new Runnable() {

            @Override
            public void run()
            {               
                time++;

                Log.i("time 2", time+"");

                if(stopThread == false)
                    startStopWatch();

            }
        }, 1000);   
    }

    public class LocalBinder extends Binder {
        public OnTheWayCounterService getService() {
            // Return this instance of LocalService so clients can call public methods
            return OnTheWayCounterService.this;
        }
    }

    public String getOnTheWayTime()
    {
        long hours = time / 3600;
        long minutes = time / 60;
        long seconds = time % 60;

        Log.i("time", time+"");

        String sMinutes;
        String sSeconds;

        if(minutes < 10)
            sMinutes = "0" + minutes;
        else
            sMinutes = minutes+"";

        if(seconds < 10)
            sSeconds = "0" + seconds;
        else
            sSeconds = seconds+"";

        return hours + ":" + sMinutes + ":" + sSeconds;
    }

}

我的问题是顶部

@Override
        protected void onStop() {
            super.onStop();
            // Unbind from the service
            if (mBound) {
                unbindService(mConnection);
                mBound = false;
            }
        }
我把它和它的工作

@Override
        protected void onStop() {
            super.onStop();
            // Unbind from the service
            if (mBound) {
                unbindService(mConnection);
                mBound = false;
            }
        }