【发布时间】:2020-09-21 16:42:24
【问题描述】:
好的,我正在运行一个广播接收器:
public class SyncServiceBroadcastReceiver : BroadcastReceiver
{
public static string syncStarted = "SyncRuns";
private readonly PendingOrdersActivity pendingOrdersActivity;
public SyncServiceBroadcastReceiver(PendingOrdersActivity pendingOrdersActivity)
{
this.pendingOrdersActivity = pendingOrdersActivity;
}
public override void OnReceive(Context context, Intent intent)
{
this.pendingOrdersActivity.RefreshPendingOrdersOnSync();
Toast.MakeText(context, "Datele se actualizează...", ToastLength.Short).Show();
}
}
每次命中时,我都希望它从活动中运行一个方法(方法 RefreshPendingOrdersOnSync)。这就是为什么我创建了一个接受活动的构造函数。
在我注册 BroadcastReceiver 的活动中,在 OnResume 方法中,通过传入“this”:
var filter = new IntentFilter(SyncServiceBroadcastReceiver.syncStarted);
filter.AddCategory(Intent.CategoryDefault);
this.syncServiceBroadcastReceiver = new SyncServiceBroadcastReceiver(this);
this.RegisterReceiver(this.syncServiceBroadcastReceiver, filter);
不过,在 Receiver 部分,它给出了标题中的错误.... 如果我添加一个空的构造函数,我怀疑它会通过那里并且 OnReceive 中的这一行会中断,因为 this.pendingOrdersActivity 是 null
this.pendingOrdersActivity.RefreshPendingOrdersOnSync();
我很困惑为什么
【问题讨论】:
-
您是否看到以下内容:docs.microsoft.com/en-us/xamarin/android/app-fundamentals/… 您正在继承广播接收器,因此您继承的类必须满足所有要求。