首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PolicyManager中的方法在Android-22源代码中直接返回null?

问为什么PolicyManager中的方法在Android-22源代码中直接返回null?
EN

Stack Overflow用户
提问于 2015-08-24 10:45:34
回答 1查看 216关注 0票数 0

我最近正在尝试阅读.I的安卓源代码,有两套源码,安卓-22和安卓-21。我发现它们之间有些不同之处。下面是PolicyManager的一段源代码,我认为它有很大的问题!公共类PolicyManager {

代码语言:javascript
复制
public static Window makeNewWindow(Context context) {
    // this will likely crash somewhere beyond so we log it.
    Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED,
            "Call to PolicyManager.makeNewWindow is not supported", null);
    return null;
}

正如我们所看到的,PolicyManager.makeNewWindow直接返回null,如果我调用PolicyManager.makeNewWindow,我将得到null!让我们来看看Activity的附加方法: final void attach(Context context,ActivityThread aThread,Instrumentation instr,IBinder token,int ident,Application application,Intent intent,ActivityInfo info,CharSequence title,Activity parent,String id,NonConfigurationInstances lastNonConfigurationInstances,Configuration config,String referrer,IVoiceInteractor voiceInteractor) { attachBaseContext(context);

代码语言:javascript
复制
    mFragments.attachActivity(this, mContainer, null);

    mWindow = PolicyManager.makeNewWindow(this);
    mWindow.setCallback(this);
    mWindow.setOnWindowDismissedCallback(this);
    mWindow.getLayoutInflater().setPrivateFactory(this);

mWindow是否为空?MWindow.setCallback(这)会触发NullPointer异常吗?我不得不说我从androidstudio下载了源码,我想知道源码是不是错了?

EN

回答 1

Stack Overflow用户

发布于 2016-01-28 16:22:14

Android-23源代码中的Activity类

代码语言:javascript
复制
mWindow = new PhoneWindow(this)

对于新的PhoneWindow对象,不要在api-22之后使用PolicyManager类。

在android api-23下开发时,可以通过反射创建一个PhoneWindow对象。以下是代码。

代码语言:javascript
复制
    String phone_window_calss = "com.android.internal.policy.PhoneWindow";
    Class phoneWindowClass = null;
    try {
        phoneWindowClass = Class.forName(phone_window_calss);
        Constructor constructor = phoneWindowClass.getDeclaredConstructor(new Class[]{Context.class});
        mWindow = (Window) constructor.newInstance(context);
    } catch (Exception e) {}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32173797

复制
相关文章

相似问题

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