Android 将LocalBroadcastManager与静态类一起使用

Android 将LocalBroadcastManager与静态类一起使用,android,Android,免责声明:我对Android编程相当陌生,所以我尝试模仿iOS NSNotificationCenter 我发现LocalBroadcastManager的行为类似于NSNotifcationCenter。我试图做的是在套接字通信结束时从静态类向活动发送消息 我从这里找到了如何使用LocalBroadcastManager 我的问题是如何将上下文(“this”)设置为我的静态类,或者我没有得到错误“LocalBroadcastManager类型中的getInstance(context)方法不适

免责声明:我对Android编程相当陌生,所以我尝试模仿iOS NSNotificationCenter

我发现LocalBroadcastManager的行为类似于NSNotifcationCenter。我试图做的是在套接字通信结束时从静态类向活动发送消息

我从这里找到了如何使用LocalBroadcastManager

我的问题是如何将上下文(“this”)设置为我的静态类,或者我没有得到错误“LocalBroadcastManager类型中的getInstance(context)方法不适用于参数(My_static_class)”

LocalBroadcastManager.getInstance(this).sendBroadcast(intent)


如果使用LocalBroadcastManager不是将信息从静态类发送到活动的最佳方式,我愿意采用其他方法来完成此任务。

只需从调用静态方法的应用程序的活动中传递上下文即可

公共静态无效发送广播(上下文){ LocalBroadcastManager.getInstance(上下文).sendBroadcast(意图); }

来自应用程序或活动

StaticClass.sendBroadcast(getApplicationContext());
或者,如果需要从静态类调用if,请在创建应用程序时访问上下文

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);
    }

}

好极了!现在我可以从任何地方发送广播。这几行是我的光芒:私有静态上下文;公共静态void init(上下文){YourClass.Context=Context;}