2016-07-19 2 views
0

NsdManager.ResolveListenerを宣言しているNetwork Service Discoveryを処理するためのヘルパクラスがあります。アクティビティリストビューを更新するサービスを解決するとします。リスナーからのアクティビティリストビューの更新

My活動ONSTART

@Override 
protected void onStart() { 
    mNsdHelper = new NsdHelper(this); 
    mNsdHelper.initializeNsd(); 
    super.onStart(); 
} 

私はサービスが解決されれば活動をバック更新する:

mResolveListener = new NsdManager.ResolveListener() { 
     @Override 
     public void onResolveFailed(NsdServiceInfo serviceInfo, int errorCode) { 
      Log.e(TAG, "Resolve failed" + errorCode); 
     } 
     @Override 
     public void onServiceResolved(NsdServiceInfo serviceInfo) { 
      Log.e(TAG, "Resolve Succeeded. " + serviceInfo); 
      mService = serviceInfo; 
     } 
    }; 

はどのように私はそれを行うのですか?

+0

EventBusと呼ばれるサードパーティのライブラリを使用することをお勧めします。この種のものには良いことだ。 Googleは、彼らはあなたが簡単に始めるために良いドキュメントを持っています。 – Vucko

+0

なぜ彼はEventBusを使用する必要がありますか?彼はサービス/アクティビティまたはブロードキャストレシーバ/アクティビティをブリッジしません。爪のためのスレッジハンマーのようです。 –

+0

比較を愛してください:D @AustinHanson – Vucko

答えて

1

Activity.runOnUiThread(Runnable)を使用して、メインスレッド上のListViewアダプタのバッキングデータモデルへの変更に影響を与えます。その後、Adapter.notifyDataSetChanged()を呼び出します。 How to refresh Android listview?

+0

アクティビティをクラスに結合しませんか? –

+0

EventBusは "リスナー"も結合します。静的クラスでは隠されているだけです。 –

関連する問題