如何在Xamarin.Forms项目中的另一个类中创建的Intent可以访问MainActivity?

问题描述 投票:1回答:1

我想为Xamarin.forms项目设置通知。将DependencyService用于特定于平台的功能,使用这些功能的签名定义接口。

我的界面是:

namespace MyProject.Interfaces
{
  public interface ILocalNotificationService
  {
     void ShowLocalNotification(string title, string text, string icon);
  }
}

并且,接口实现是:

[assembly: Dependency(typeof(LocalNotificationService))]
namespace MyProject.Droid.Dependencies
{
  public class LocalNotificationService :Activity, ILocalNotificationService
  {
    private static int notificationId = 1;

    public void ShowLocalNotification(string title, string text, string icon)
    {
        try
        {
            Intent intent = new Intent(this, typeof(MainActivity));
    ......
        }
       catch(Exception ex)
       {
       }
    }
  }
}

但是,当我运行程序时,会发生异常:

尝试在空对象引用上调用虚方法'java.lang.String android.content.Context.getPackageName()'

此行发生异常:

Intent i = new Intent(this, typeof(AlarmReceiver));

如何处理此异常以及如何在这种情况下正确获取MainActivity?

android xamarin.forms xamarin.android
1个回答
0
投票

在表单中获取应用程序的Context核心class一般我们使用此代码片段

var activity = Forms.Context as Activity;

然后我们可以通过上面的activity,例如

var activity = Forms.Context as Activity;
Intent i = new Intent(activity, typeof(MainActivity));
© www.soinside.com 2019 - 2024. All rights reserved.