首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现ComponentCallbacks侦听onConfigurationChanged

实现ComponentCallbacks侦听onConfigurationChanged
EN

Stack Overflow用户
提问于 2012-06-30 16:30:40
回答 3查看 4.1K关注 0票数 2

在安卓系统中有ComponentCallbacks接口使用by活动、ActivityGroup、服务等,当活动配置发生变化时,他们会实现,并由通知他们。因此,我想创建自己的类,它实现了ComponentCallbacks侦听onConfigurationChanged并执行一些操作.所以我的课正在实施,但是..。我想我需要在注册我的班级,有人的观察者。

那么,有可能吗?在配置更改时,是否有任何方法可以“注册”我自己的类?

我想这个人可能是ActivityThread,这是collectComponentCallbacksLocked的方法。但我看不出有什么办法注册我自己的课。

ActivityThreadComponentCallbacks使用

附注:当然,我可以重写活动的方法onConfigurationChange更改,然后调用类的onConfigurationChanged方法,但我不想。我想知道android有没有办法做到这一点。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-04 08:43:28

在"Google /O 2012 --少花钱多做:做一个好的安卓公民“(你可以在youtube上找到)中,有人解释说你可以通过调用Context.registerComponentCallbacks来做到这一点。因此,您只需让类实现ComponentCallbacks接口(或您希望的ComponentCallbacks2 ),就可以自动添加可以覆盖的方法,并从活动中添加片段。只需将实例从类中传递给它就行了。就像这样:

代码语言:javascript
复制
 registerComponentCallbacks( mYourClass );

应该做的工作:)

票数 6
EN

Stack Overflow用户

发布于 2012-10-04 00:52:49

根据@Sandra的回答,我们可以使用Context.registerComponentCallbacks在系统中注册自己的组件回调,并按如下方式使用:

代码语言:javascript
复制
context.registerComponentCallbacks(new ComponentCallbacks() {

            @Override
            public void onLowMemory() {
                // make some operations when system memory is low
            }

            @Override
            public void onConfigurationChanged(Configuration newConfig) {
                // make some operations when configuration has been changed
            }
        });

当系统配置更改/在低内存上时,将调用所有已注册回调。

方法registerComponentCallbacks可从API级别14.检查它如何工作这里

票数 2
EN

Stack Overflow用户

发布于 2012-07-01 12:16:55

您想要做的是注册一个BroadcastReceiver来接收这个播报意图:

Intent.ACTION_CONFIGURATION_CHANGED

该事件在配置更改时由系统广播。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11275738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档