gpt4 book ai didi

android - 将 LocalBroadcastManager 与静态类一起使用

转载 作者:太空狗 更新时间:2023-10-29 16:42:43 25 4
gpt4 key购买 nike

免责声明:我是 Android 编程的新手,所以我试图模仿 iOS NSNotificationCenter。

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

我从这个 stackoverflow answer 找到了如何使用 LocalBroadcastManager

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

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

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

最佳答案

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

public static void sendBroadcast(上下文上下文){ LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

来自应用程序或 Activity

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

}

关于android - 将 LocalBroadcastManager 与静态类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com