Xamarin C#mainavity.Intent为空
我正在使用Xamarin创建呼叫转移应用程序。我所做的是按下一个按钮,一个命令被触发,并使用DependencyService调用调用转移器方法的特定于Android的实现 现在我遇到了一个问题,StartActivity方法的MainActivity上下文的实例为null。我怀疑这是我运行应用程序时出现错误的原因:“StartActivity的目标为null(NullReferenceException)” 但我不知道如何解决这个问题。我以为我做的每件事都是对的,但我有个例外 这是我到目前为止的代码:Android项目调用转移方法实现Xamarin C#mainavity.Intent为空,c#,android,xamarin.forms,nullreferenceexception,C#,Android,Xamarin.forms,Nullreferenceexception,我正在使用Xamarin创建呼叫转移应用程序。我所做的是按下一个按钮,一个命令被触发,并使用DependencyService调用调用转移器方法的特定于Android的实现 现在我遇到了一个问题,StartActivity方法的MainActivity上下文的实例为null。我怀疑这是我运行应用程序时出现错误的原因:“StartActivity的目标为null(NullReferenceException)” 但我不知道如何解决这个问题。我以为我做的每件事都是对的,但我有个例外 这是我到目前为止
[assembly: Dependency(typeof(CallDiverter_Android))]
namespace CallDiverter2.Droid
{
public class CallDiverter_Android : ICallDiverter
{
public void DivertCall(string callForwardString)
{
var context = MainActivity.Instance;
//Divert call code
try
{
//String callForwardString = "**21*1234567890#";
Intent callIntent = new Intent(Intent.ActionCall); // ACTION_CALL
Android.Net.Uri uri = Android.Net.Uri.Parse(callForwardString);
callIntent.SetData(uri);
context.StartActivity(callIntent);
//Forms.Context.StartActivity(callIntent);
}
catch (Exception)
{
throw;
}
}
public void StopCallDiverting()
{
//Stop the call diverting action
}
}
}
MainActivity类中的实例:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
internal static MainActivity Instance { get; private set; }
protected override void OnCreate(Bundle bundle)
{
Instance = this;
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
离题:Visual Studio是否警告您,由于内存泄漏,对活动进行静态引用是危险的?@ZUNJAE否它不会对此发出任何警告。