package com.webabcd.service;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;/* * startService() 和 bindService() 的区别 * startService() - 正常理解就好 * bindService() - 使当前上下文对象(本例中就是 Activity)通过一个 ServiceConnection 对象邦定到指定的 Service 。这样,如果上下文对象销毁了的话,那么其对应的 Service 也会被销毁 */public class Main extends Activity implements OnClickListener {private TextView txtMsg; @Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);setTitle("android 之 service");this.findViewById(R.id.btnStart).setOnClickListener(this);this.findViewById(R.id.btnStop).setOnClickListener(this);this.findViewById(R.id.btnBind).setOnClickListener(this);this.findViewById(R.id.btnUnbind).setOnClickListener(this);txtMsg = (TextView)this.findViewById(R.id.txtMsg);// 实例化自定义的 BroadcastReceiverreceiver = new UpdateReceiver();IntentFilter filter = new IntentFilter();// 为 BroadcastReceiver 指定 action ,使之用于接收同 action 的广播filter.addAction("com.webabcd.service.msg");// 以编程方式注册 BroadcastReceiver 。就是在代码中注册//配置方式注册 BroadcastReceiver 的例子见 AndroidManifest.xml 文件// 一般在 OnStart 时注册,在 OnStop 时取消注册this.registerReceiver(receiver, filter);// this.unregisterReceiver(receiver);}@Overridepublic void onClick(View v) {Intent intent = new Intent(Main.this, MyService.class);switch (v.getId()) {case R.id.btnStart:this.startService(intent);break;case R.id.btnStop:this.stopService(intent);break;case R.id.btnBind:this.bindService(intent, conn, Context.BIND_AUTO_CREATE);break;case R.id.btnUnbind:this.unbindService(conn);break;}}// bindService() 所需的 ServiceConnection 对象private ServiceConnection conn = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName className, IBinder service) {}@Overridepublic void onServiceDisconnected(ComponentName className) {}};private String msg="";private UpdateReceiver receiver;// 实现一个 BroadcastReceiver,用于接收指定的 Broadcastpublic class UpdateReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {msg = intent.getStringExtra("msg");txtMsg.append(msg + "/n");}}}package com.webabcd.service;import android.app. 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交