我想为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?
答案 0 :(得分:0)
在Forms中,Context
的应用程序在核心class
中通常使用以下代码段
var activity = Forms.Context as Activity;
然后,我们可以在activity
上方通过,例如
var activity = Forms.Context as Activity;
Intent i = new Intent(activity, typeof(MainActivity));