实验五 后台服务
一、实验目的
Service 是 Android 系统的服务组件,适用于开发没有用户界面且长时间 在后台运行的功能。通过本次试验了解后台服务的基本原理,掌握本地服务的使用方法。 二、实验设备
1、硬件设备 系统类型:Win7 版本 32 位,处理器:Intel(R)Core(TM)i3-2350M CPU @2.30GHz 2.30GHz 安装内存(RAM):8.00GB
2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT 三、实验内容
1、实验要求
创建一个 Service 服务用来完成简单的数学运算。 2、详细设计 MainActivity代码:
package com.example.text7;
import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder;
import android.content.ComponentName;
public class MainActivity extends ActionBarActivity {
private MathService mathService; private boolean isBound=false;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
final EditText One=(EditText)findViewById(R.id.editText1); final EditText Two=(EditText)findViewById(R.id.editText2);
Button Begin=(Button)findViewById(R.id.button1); Button Do=(Button)findViewById(R.id.button2);
Button Stop=(Button)findViewById(R.id.button3); Button Quit=(Button)findViewById(R.id.button4);
final TextView textView=(TextView)findViewById(R.id.textView3);
Begin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub if(!isBound){
final
Intent
serviceIntent=new
Intent(MainActivity.this,MathService.class);
bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);
Do.setOnClickListener(new View.OnClickListener() {
});
}
}
isBound=true;
});
@Override
public void onClick(View arg0) { }
// TODO Auto-generated method stub if(mathService==null){ }
int a=Integer.parseInt(One.getText().toString()); int b=Integer.parseInt(Two.getText().toString()); int s=mathService.Compare(a, b); textView.setText(\较大的数为:\
textView.setText(\未绑定服务\return;
Stop.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0){
if(isBound){
isBound=false;
unbindService(mConnection);
}
}
mathService=null;
});
Quit.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View arg0){ }
finish();
}); }
private ServiceConnection mConnection=new ServiceConnection(){
@Override
public void onServiceConnected(ComponentName name,IBinder service){ }
mathService=((MathService.LocalBinder)service).getService();