I am trying the following scenario
1)send a message from UI thread , to worker using HandlerThread
2)Read it using handlemessage
3)send it back to a text field in UI
I am using the below code , The issue now is that , the message in the handlemessage is coming as null
public class MainActivity extends AppCompatActivity {
private TextView serverStatus;
private TextView clientStatus;
private Handler mUiHandler = new Handler();
private BluetoothServerSocket serverSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button readButton = (Button) findViewById(R.id.button2);
readButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO Code to manage read data from client here !!
/* mWorkerThread2 = new MyWorkerThread("myWorkerThread2");
mWorkerThread2.start();
*/
}});
final Button submitButton = (Button) findViewById(R.id.button);
serverStatus=(TextView) findViewById(R.id.editText);
submitButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
HandlerThread myThread = new HandlerThread("Worker Thread");
myThread.start();
Looper mLooper = myThread.getLooper();
MyHandler mHandler = new MyHandler(mLooper);
/* Bundle data = new Bundle();
data.put
msg.setData(data);*/
Message msg = mHandler.obtainMessage();
msg.obj = serverStatus.getText().toString();// Some Arbitrary object
/* Toast.makeText(getApplicationContext(), msg.obj.toString(), Toast.LENGTH_SHORT).show();*/
mHandler.sendMessage(msg);
}});
}
class MyHandler extends Handler {
public MyHandler(Looper myLooper) {
super(myLooper);
}
public void handleMessage(final Message msg) {
//final String text=msg.getData().getString("");
mUiHandler.post(new Runnable() {
@Override
public void run() {
String ms=String.valueOf(msg.obj);
serverStatus.setText("from server !!! "+ms );
}
});
}
}
}