package yskj.buletooth;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import service.SocketService;
public class SendMessageActivity extends AppCompatActivity implements SocketService.ServiceCallBack {
private EditText inputMessageEdit;
private TextView showView;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
showView.setText(msg.obj.toString());
}
};
private SocketService myService;
private ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
myService = ((SocketService.LocalBinder) service).getService();
myService.init(SendMessageActivity.this);
}
@Override
public void onServiceDisconnected(ComponentName name) {
myService = null;
}
};
@Override
public void callback(String response) {
Message msg = Message.obtain();
msg.obj = response;
handler.sendMessage(msg);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_message);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
init();
}
private void init()
{
inputMessageEdit = (EditText)findViewById(R.id.user_input_edit);
showView = (TextView)findViewById(R.id.server_response_view);
Intent startIntent = new Intent(this, SocketService.class);
startService(startIntent);
bindService(startIntent, connection, Context.BIND_AUTO_CREATE);// bind多次也只会调用一次onBind方法
}
public void startSendMessageClick(View v)
{
// String inputMessage = inputMessageEdit.getText().toString().trim();
// if (TextUtils.isEmpty(inputMessage))
// {
// showMsg("请输入发送信息!");
// return;
// }
myService.startThread();
}
public void stopSendMessageClick(View v)
{
// Intent startIntent = new Intent(this, SocketService.class);
// stopService(startIntent);
// unbindService(connection);
myService.pauseThread();
}
private void showMsg(String msg)
{
Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
}
}
Socket编程之activity
最新推荐文章于 2021-05-27 13:11:22 发布