2013-02-28 160 views
2

声明:我对Android编程相当陌生,所以我试图模仿iOS NSNotificationCenter。与静态类一起使用LocalBroadcastManager

我发现LocalBroadcastManager的行为像NSNotifcationCenter。我试图做的是当套接字流量结束时,从静态类发送消息到一个活动。

我发现如何使用LocalBroadcastManager从这个stackoverflow answer

我的问题是如何设置的情况下(“本”),以我的静态类或我没有得到错误“getInstance方法(上下文) LocalBroadcastManager类型不适用于参数(MY_STATIC_CLASS)“。

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

我打开越来越如果使用的LocalBroadcastManager是不是从一个静态类信息发送到活动的最佳方式完成这件事的其他方式。

回答

4

只需从您调用静态方法的应用程序活动传递上下文即可。 (上下文).sendBroadcast(intent);上一页下一页最后一页上一页下一页最后一页 }

从应用程序或活动

StaticClass.sendBroadcast(getApplicationContext()); 

或者,如果你需要从静态类,如果打电话,PAS在应用程序中创建上下文。

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

} 
+0

甜!现在我可以从任何地方发送我的广播。这条线是我的光芒:私有静态上下文上下文; public static void init(Context context){Your_lass.context = context; } – Josh 2015-03-04 14:36:59