我正在创建一个只依赖于网络的在线应用程序。
因此,每当出现网络错误时,它必须通知用户。为此,我创建了一个BroadcastReciver,它在网络连接丢失(互联网)时接收调用。
所有这些都运行得很完美。现在我需要的是从这个Broadcast Receiver调用Activity的方法,我在该方法中创建了一个Alert Dialogue。
我已经阅读了stackoverflow.com上的许多答案,可以通过仅使用Activity名称声明该方法静态并进行调用,例如MyActivityName.myMethod()
。
但是我不能将我的方法声明为静态,因为我在那里使用了Alert Dialogue,它会在以下行显示错误:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
无法在静态上下文中使用此方法。
那么,我该如何从广播接收器调用Activity的方法(必须非静态且不启动该Activity)?
并且,我能否从当前正在运行的广播接收器中获取Activity(或片段)的名称?
BroadcastReceiver
不能与外部的BroadcastReceiver
具有相同的意图过滤器。如果这样做,你将会陷入一个无休止的循环中。 - velis