我正在编写一个android应用程序。
我有一个扩展名为 ApplicationContext 的应用程序的类
当我打这个电话时,它会因类强制执行而爆炸
ApplicationContext appContext = (ApplicationContext) getApplicationContext();
有谁知道为什么会发生这种情况?
谢谢
我正在编写一个android应用程序。
我有一个扩展名为 ApplicationContext 的应用程序的类
当我打这个电话时,它会因类强制执行而爆炸
ApplicationContext appContext = (ApplicationContext) getApplicationContext();
有谁知道为什么会发生这种情况?
谢谢
你有一个名为的类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();
我不相信 Android 的ApplicationContext
类是公开的,我相信它是 Android SDK 类私有的抽象类。
此外,您将无法将 Context 分配给扩展的 Application 类。你必须扩展Context
.