2017-01-26 13 views
0

私はthreadを持っており、inputStreamを聞いて、Bluetoothソケットから入手したいくつかのデータをouputStreamで送ることができます。1つのスレッドと2つのアクティビティ(アンドロイド)間でデータを送信

これは私が達成しようとしているものです:私はMainActvityActivity Bを持っています。私はThreadからデータを受信するか、データをThreadに送信することができるようにする必要があります。

スレッドの新しいインスタンスを作成するだけでは、接続を切断することはできません。

私はアンドロイドとプログラミングに新しいので、本当に必要なものを知ることは非常に難しいです。

私はハンドラ、放送受信機で最善を尽くしましたが、Activity Bで動作させることはできませんでした。 私の場合は何が問題になるかもしれません。その例があればうれしいでしょう。

+0

2のactivites?どうして? – JoxTraex

+0

あなたのスレッドを 'Service'で維持し、あなたのアクティビティで' bindService() 'と' unbindService() 'を呼び出してください。 –

+0

@JoxTraex私のアプリケーションはアンドロイドを着ています。私は2つのアクティビティを持っています.1つはデバイスをBluetoothサーバーに接続するためのもので、もう1つはgridviewpagerでいくつかの文字列を表示することです。私が知っているように、私はMainActivityでうまくやっていません。私はまた、inputstreamを聞いて、outputstreamsを送る必要があります – UnS1t

答えて

0

スレッドを実行するサービスでLocalBroadcastManagerを使用して、アクティビティに受信者を登録させることができます。あなたの活動に

:あなたのサービスで

final LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getApplicationContext()); 
    final IntentFilter filter = new IntentFilter(); 
    filter.addAction("SAMPLE_ACTION"); 
    lbm.registerReceiver(new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.d(TAG, "onReceive() called with: context = [" + context + "], intent = [" + intent + "]"); 
     } 
    }, filter); 

final LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getApplicationContext()); 
    final Intent intent = new Intent("SAMPLE_ACTION"); 
    lbm.sendBroadcast(intent); 
関連する問題