如何从MainActivity调用方法到LifeCycleObserver

问题描述 投票:0回答:1

我已经按照教程构建了计时器应用程序。本教程在MainActivity中创建了创建和销毁计时器的方法。现在,我正在尝试在用户离开应用程序时停止计时器。当发生Lifecycle.Event.ON_STOP且应用程序进入后台时,我正在使用LifeCycleObserver进行调用。

我想在用户离开应用程序时在Main Activity中调用一个名为onTimerFinished()的方法

当我尝试在LifeCycleObserver中调用该方法时,它返回一个错误,它是一个未解决的引用。

这是我正在尝试onTimerFinished的LifecycleObserver

class ApplicationObserver() : LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    fun onBackground() {

        Log.d("myTag", "App closed")
        MainActivity.onTimerFinished()

    }
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    fun onForeground() {
    }
}

这是位于我的MainActivity中的onTimerFinished函数

private fun onTimerFinished(){
    timerState = TimerState.Stopped
    setNewTimerLength()
    progress_countdown.progress = 0
    PrefUtil.setSecondsRemaining(timerLengthSeconds,this)
    secondsRemaining = timerLengthSeconds
    updateButtons()
    updateCountdownUI()
}

当我将变量移至MainActivity的伴随对象时,它似乎并没有改变实际的计时器。相反,它会更改伴随对象的变量。]​​>

如何在LifecycleObserver中调用此函数

我已经按照教程构建了计时器应用程序。本教程在MainActivity中创建了创建和销毁计时器的方法。现在,我正在尝试在用户...

android kotlin android-activity android-lifecycle
1个回答
0
投票

您不能直接将MainActivity称为私人乐趣。您需要它的引用,并且必须将onTimeFinished方法公开。

© www.soinside.com 2019 - 2024. All rights reserved.