class MyLocationListener: LifecycleObserver{ private val TAG = MyLocationListener::class.java.simpleName private lateinit var onLocationChangedCallback: OnLocationChangedCallback @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) private fun startGetLocation(){ Log.d(TAG, "startGetLocation()") } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) private fun stopGetLocation(){ Log.d(TAG, "stopGetLocation()") } fun setOnLocationChangedCallback(callback: OnLocationChangedCallback){ this.onLocationChangedCallback = callback } }
class LifecycleActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_lifecycle) val listener = MyLocationListener() listener.setOnLocationChangedCallback(object : OnLocationChangedCallback { override fun onChange() { } }) // 将观察者与被观察者绑定 lifecycle.addObserver(listener) } }
原文:https://www.cnblogs.com/touchmore/p/15030651.html