简体   繁体   English

活动生命周期观察者-如何知道活动实例何时被破坏?

[英]Activity lifecycle observer - how to know when an activity instance is destroyed?

Imagine I have a class MyLibrary , that requires to be passed an Activity as a parameter to it's constructor: public MyLibrary(Activity someActivity) . 想象一下,我有一个类MyLibrary ,它需要将一个Activity作为参数传递给它的构造函数: public MyLibrary(Activity someActivity) Is there a way to attach an observer to someActivity within the MyLibrary constructor, so that MyLibrary would know when someActivity gets destroyed? 有没有办法将观察者附加到MyLibrary构造函数中的someActivity上 ,以便MyLibrary知道someActivity何时被销毁?

I'm using Bumptech's Glide for async image loading and in several places in their issues it is mentioned that after passing a context, activity or fragment to it's Glide.with() function, Glide will automatically pause images that are currently loading if the passed object gets destroyed. 我正在使用Bumptech的Glide进行异步图像加载,并在其问题的多个地方提到在将上下文,活动或片段传递给Glide.with()函数后,如果传递了Glide,Glide将自动暂停当前正在加载的图像对象被破坏。 ( Example ) I'm wondering how Glide figures out when to stop loading once the given context, activity or fragment is destroyed, how does it observe it? 示例 )我想知道一旦给定的上下文,活动或片段被破坏,Glide如何找出何时停止加载,它如何观察到?

Ideally I'd like to do something along the following lines (note this is a made up example): 理想情况下,我想按照以下方式做一些事情(请注意,这是一个虚构的示例):

public MyLibrary(Activity someActivity){
    someActivity.addLifecycleObserver(new LifecycleObserver(){
        @Override
        public void onStart() {}

        @Override
        public void onStop() {}

        @Override
        public void onDestroy() {}
    });
}

Google just released an architectural library which handles your use case. Google刚刚发布了一个处理您的用例的架构库。 Check out the guide 查看指南

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM