packagecom.njulya.intsum;importandroid.os.Bundle;importandroid.os.IBinder;importandroid.app.Activity;importandroid.content.ComponentName;importandroid.content.Intent;importandroid.content.ServiceConnection;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;public class MainActivity extendsActivity {privateEditText num1;privateEditText num2;privateTextView sum;privateServiceConnection conn;//自定义的公共接口,用于求两数之和
privateSumOfTwo sumOfTwo;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num1= (EditText)this.findViewById(R.id.num1);
num2= (EditText)this.findViewById(R.id.num2);
sum= (TextView)this.findViewById(R.id.sum);
Button button= (Button)this.findViewById(R.id.button);
button.setOnClickListener(newOnClickListener() {
@Overridepublic voidonClick(View v) {
sum();
}
});
conn= newSumConnetion();
Intent service= new Intent(this, SumService.class);this.bindService(service, conn, BIND_AUTO_CREATE);
}protected voidsum() {int number1 =Integer.valueOf(num1.getText().toString());int number2 =Integer.valueOf(num2.getText().toString());int result =sumOfTwo.sum(number1, number2);
sum.setText(String.valueOf(result));
}private class SumConnetion implementsServiceConnection{
@Overridepublic voidonServiceConnected(ComponentName name, IBinder service) {
sumOfTwo=(SumOfTwo)service;
}
@Overridepublic voidonServiceDisconnected(ComponentName name) {
sumOfTwo= null;
}
}
@Overrideprotected voidonDestroy() {
unbindService(conn);super.onDestroy();
}
@Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);return true;
}
}