-1

我正在编写一个android应用程序。

我有一个扩展名为 ApplicationContext 的应用程序的类

当我打这个电话时,它会因类强制执行而爆炸

ApplicationContext appContext = (ApplicationContext) getApplicationContext();

有谁知道为什么会发生这种情况?

谢谢

4

2 回答 2

2

你有一个名为的类ApplicationContext?坏主意,因为 SDK 中已经有一个同名的类。重命名你的班级。

但无论如何,getApplicationContext()是一种Context返回android.content.Context对象的方法。

如果在队列中,

ApplicationContext appContext = (ApplicationContext) getApplicationContext();

ApplicationContext引用 YOUR class ApplicationContext,那么你会得到一个类转换异常,因为getApplicationContext()它不返回 YOUR 类,它返回一个android.context.Context. 在这种情况下,将行更改为,

android.content.ApplicationContext appContext = getApplicationContext();

因为我看不到你的进口,问题实际上可能是相反的。ApplicationContext指的是android.content.ApplicationContext,并且getApplicationContext()是您的方法,它返回一个your.package.ApplicationContext. 在这种情况下,将行更改为,

your.package.ApplicationContext appContext = getApplicationContext();
于 2012-09-20T21:03:23.097 回答
0

我不相信 Android 的ApplicationContext类是公开的,我相信它是 Android SDK 类私有的抽象类。

此外,您将无法将 Context 分配给扩展的 Application 类。你必须扩展Context.

于 2012-09-21T01:59:50.690 回答