private CompareService compareService; int a=0,b=0; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
final TextView result=(TextView)findViewById(R.id.result); Button compare=(Button)findViewById(R.id.compare); Button reset=(Button)findViewById(R.id.reset);
final EditText one=(EditText)findViewById(R.id.one); final EditText two=(EditText)findViewById(R.id.two);
if(!isBound){ Intent serviceIntent=new Intent(MainActivity.this,CompareService.class); bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE); isBound=true; }
compare.setOnClickListener(new OnClickListener(){ public void onClick(View v) { String c1=one.getText().toString(); String c2=two.getText().toString(); if(!c1.equals(\ a=Integer.parseInt(c1); b=Integer.parseInt(c2); } result.setText(String.valueOf(compareService.IntCompare(a, b))); } });
reset.setOnClickListener(new OnClickListener(){ public void onClick(View v) { one.setText(null); two.setText(null); result.setText(null); } }); }
private ServiceConnection mConnection=new ServiceConnection(){ @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub compareService=((CompareService.LocalBinder)service).getService(); }
第 错误!未指定书签。 页 共 13 页
@Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub compareService=null; }}; }
CompareService.java
public class CompareService extends Service { private final IBinder mBinder=new LocalBinder(); class LocalBinder extends Binder{ CompareService getService(){ return CompareService.this; } } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return mBinder; } public int IntCompare(int a,int b){ if(a>=b) return a; else return b; } }
五、 作业
1. 简述Intent的定义和用途?
Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。Intent为Activity、Service和BroadcastReceiver等组件提供交互能力,将一个组件的数据和动作传递给另一个组件。Intent的一个最常见的用途就是启动Activity和Service;另一个用途是在Android系统上发布广播消息,广播消息可以是接收到特定数据或消息,也可以是手机的信号变化或电池的电量过低等信息。
2. 简述Service的基本原理和用途?
Service能够长期在后台运行?适用于无需用户干预?且规则或长期运行的后台功能。首先
第 错误!未指定书签。 页 共 13 页
?因为Service没有用户界面?更加有利于降低系统资源的消耗?而且Service比Activity具有更高的优先级?因此在系统资源紧张时?Service不会被Android系统优先终止。即使Service被系统终止?在系统资源恢复后Service也将自动恢复运行状态?因此可以认为Service是在系统中永久运行的组件。Service除了可以实现后台服务功能?还可以用于进程间通信?Inter Process Communication?IPC??解决不同Android应用程序进程之间的调用和通讯问题。
第 错误!未指定书签。 页 共 13 页