2013-02-28 163 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