4

を拡張してクラス「ABCBroadcastReceiver 」を作成しました。しかし、最近、私はつまずいたLocalBroadcastManager

ここに私のクラス宣言があります:

public class ABC extends BroadcastReceiver {}

したがって、ABC はリスナーとして機能し、アクションに基づいて別のオブジェクトを呼び出します。

LocalBroadcastManagerここはアクティビティなしで使えるか、あちこちチェックしてみました。実際、クラス ABC は、どの UI コンポーネントにも接続しないコア アプリケーション クラスです。

LocalBroadcastManager私のシナリオで どのように使用できるか教えてください。
私はAndroidが初めてです。助けてください。

4

2 に答える 2

2

回答が遅くなるかもしれませんが、参考になれば幸いです。

最初のステップは、アプリケーションを拡張するクラスを用意することです。これは、Activity の外部からアプリケーション コンテキストを取得するために使用されます。

public class AppContext extends Application {

    private static AppContext instance;

    public AppContext() {
      instance = this;
    }

    public static Context getContext() {
      return instance;
    }
}

次に、LocalBroadcasr にメッセージを送信する場所に次のコードを追加します。

Intent intent = new Intent("intent-filter");
intent.putExtra("message", "your-message-here");
LocalBroadcastManager.getInstance(AppContext.getContext()).sendBroadcast(intent);

最後に、次に示すように、クラス ABC がこのインテントを受け取ります。

private BroadcastReceiver receiver;

public class ABC{

public ABC(){
    receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
      //receive your message here
      String message = intent.getStringExtra("message");
    };
        LocalBroadcastManager.getInstance(AppContext.getContext()).registerReceiver(receiver, new IntentFilter("intent-filter")); 
}
于 2014-02-12T09:25:39.637 に答える
-4
LocalBroadcastManager  localBroadcastManager = LocalBroadcastManager.getInstance(context);
localBroadcastManager.registerReceiver(receiver); // or other operations
于 2013-09-12T09:47:36.963 に答える