首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对静态类使用LocalBroadcastManager

对静态类使用LocalBroadcastManager
EN

Stack Overflow用户
提问于 2013-03-01 00:39:15
回答 1查看 2.9K关注 0票数 2

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

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

我发现了如何在这个stackoverflow answer中使用LocalBroadcastManager

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-01 01:02:37

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

公共静态无效上下文(Context SendBroadcast){ LocalBroadcastManager.getInstance(context).sendBroadcast(intent);}

从应用程序或活动

代码语言:javascript
复制
StaticClass.sendBroadcast(getApplicationContext());

或者,如果需要从静态类调用if,则在应用程序创建时传递上下文。

代码语言:javascript
复制
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);
    }

}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15140854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档