免责声明:我对Android编程很新,所以我试图模仿iOS NSNotificationCenter。
我发现LocalBroadcastManager就像NSNotifcationCenter一样。我想要做的是在套接字流量完成时从静态类向活动发送消息。
我找到了如何使用此stackoverflow answer
中的LocalBroadcastManager我的问题是我如何设置上下文(' this')到我的静态类,或者我没有得到错误"类型为LocalBroadcastManager的方法getInstance(Context)不适用对于参数(MY_STATIC_CLASS)"。
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
如果使用LocalBroadcastManager不是从静态类向活动发送信息的最佳方式,我愿意采用其他方式完成此操作。
答案 0 :(得分:5)
从您调用静态方法的应用程序活动中传递上下文。
public static void sendBroadcast(Context context){ LocalBroadcastManager.getInstance(上下文).sendBroadcast(意向); }
来自应用程序或活动
StaticClass.sendBroadcast(getApplicationContext());
或者,如果您需要从静态类调用,请将上下文传递给Application create。
public final class YourApp extends Application {
@Override
public void onCreate() {
super.onCreate();
YourClass.init(this);
}
}
public final class YourClass {
private static Context context;
public static void init(Context context) {
YourClass.context = context;
}
public static void sendBroadcast() {
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
}