2

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

我发现 LocalBroadcastManager 的行为类似于 NSNotifcationCenter。我要做的是在套接字流量完成时从静态类向活动发送消息。

我从这个stackoverflow 答案中找到了如何使用 LocalBroadcastManager

我的问题是如何将上下文('this')设置为我的静态类,否则我没有收到错误“LocalBroadcastManager 类型中的方法 getInstance(Context) 不适用于参数 (MY_STATIC_CLASS)”。

LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

如果使用 LocalBroadcastManager 不是将信息从静态类发送到活动的最佳方式,我愿意接受其他方式来完成这项工作。

4

1 回答 1

5

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

公共静态无效sendBroadcast(上下文上下文){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);
    }

}
于 2013-02-28T17:02:37.077 回答