从c#代码运行Android活动(我在Monogame中使用Xamarin)
我在Monogame中使用Xamarin,我需要从c#代码运行android活动。我尝试这样做:从c#代码运行Android活动(我在Monogame中使用Xamarin),c#,android,android-activity,xamarin,monogame,C#,Android,Android Activity,Xamarin,Monogame,我在Monogame中使用Xamarin,我需要从c#代码运行android活动。我尝试这样做: public class Test : Activity { public void Start() { StartActivity(typeof(MyActivity)); } } } 然后从Update()调用Start() 但我有错误。 请帮帮我一个现有的活动实例在构建时会在幕后进行一些工作;通过intent系统启动的活动(所有活动)在实例化时将添加一个上下文引用。此上下文引用用
public class Test : Activity
{
public void Start()
{
StartActivity(typeof(MyActivity));
}
}
}
然后从Update()调用Start()
但我有错误。
请帮帮我一个现有的
活动
实例在构建时会在幕后进行一些工作;通过intent系统启动的活动(所有活动)在实例化时将添加一个上下文引用。此上下文引用用于StartActivity
的调用链中
因此,在Test
活动实例上调用StartActivity
后看到的Java.Lang.NullPointerException
是因为该实例中的上下文从未设置过。通过使用new
操作符创建活动实例,您绕过了活动实例化的正常方式,使实例处于无效状态
这可以通过使用全局应用程序上下文来启动活动来解决:
var intent = new Intent(Android.App.Application.Context, typeof(Test));
intent.SetFlags(ActivityFlags.NewTask);
Android.App.Application.Context.StartActivity (intent);
发布您收到的完整错误消息。可能重复感谢。我认为这是不可能的
var intent = new Intent(Android.App.Application.Context, typeof(Test));
intent.SetFlags(ActivityFlags.NewTask);
Android.App.Application.Context.StartActivity (intent);