免责声明:我对Android编程很新,所以我试图模仿iOS NSNotificationCenter.
我发现LocalBroadcastManager就像NSNotifcationCenter一样.我想要做的是在套接字流量完成时从静态类向活动发送消息.
我从这个stackoverflow答案中找到了如何使用LocalBroadcastManager
我的问题是如何将上下文('this')设置为我的静态类,或者我没有得到错误"LocalBroadcastManager类型中的方法getInstance(Context)不适用于参数(MY_STATIC_CLASS)".
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
如果使用LocalBroadcastManager不是将信息从静态类发送到活动的最佳方式,我愿意接受其它方法.
只需从您调用静态方法的Application的Activity中传递Context.
public static void sendBroadcast(Context context){LocalBroadcastManager.getInstance(context).sendBroadcast(intent); }
从应用程序或活动
StaticClass.sendBroadcast(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要从静态类调用,请将上下文传递给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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2832 次 |
| 最近记录: |