Monodroid如何获取ApplicationContext()?

4

有没有人知道如何在Monodroid中获取应用程序上下文(我正在寻找getApplicationContext()的Monodroid实现)?我尝试了Application.ApplicationContext,但它不起作用。我编写了一个继承Application的类,我想将ApplicationContext显式转换为此类型。此时,mono会在输出上输出非常没有帮助的消息:

10-12 11:58:31.045 I/mono    ( 1919): Stacktrace:
10-12 11:58:31.045 I/mono    ( 1919):

编辑:我希望从一个Activity中访问它

2个回答

5
在Mono for Android中,像getApplicationContext()这样的Java getter/setter方法被翻译成属性:ApplicationContext 您在问题中没有说明您试图从哪里调用它。是在activity中吗?如果是这样,请将Application属性转换为您的自定义应用程序类。例如:
((CustomApplication) Application).DoSomething();

编辑

您还应确保您的自定义应用程序类已使用ApplicationAttribute进行了装饰:

[Application(Theme = "@style/ApplicationTheme", Label = "@string/ApplicationName", Icon = "@drawable/icon")]
public class CustomApplication : Application

我尝试了以下两种方式: YooBik.YooView yv = ((ApplicationState)Application).CurrentYooView;YooBik.YooView yv = ((ApplicationState)ApplicationContext).CurrentYooView; 但都导致了以下异常: "无法激活类型为Client.ApplicationState的实例,来自本机句柄405a4d90 @ Runtime.TypeManager.CreateInstance(...) ApplicationState类如下所示: 链接 - andineupert
1
在扩展Application类时,您需要实现IntPtr构造函数并将其传递到基类中,就像这样:https://github.com/gshackles/NycCodeCamp6/blob/master/NycCodeCamp.MonoAndroidApp/CodeCampApplication.cs#L14 - Greg Shackles

0

(免责声明:我是一个Monodroid新手)

根据我的了解,没有静态上下文。相反,上下文是当前活动的属性。

因此,在您当前的活动中,可以访问this.ApplicationContext。

您需要通过应用程序堆栈传递上下文;我可以预见这可能会变得繁琐。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接