使用BroadCast 使 service 和activity 信息交互

来源:互联网 发布:飞鱼网络电视tv 编辑:程序博客网 时间:2024/04/27 14:57
package com.su.testbroadcast;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.widget.TextView;public class TestBroadCastActivity extends Activity {private TextView textView;private ChangeReceiver changeReceiver;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);textView = (TextView) findViewById(R.id.textView1);registerBroadcast();Intent service = new Intent(TestBroadCastActivity.this, MyService.class);startService(service);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();unregisterReceiver(changeReceiver);//解除接受者}/** *  为BroadcastReceiver指定action,使之用于接收同action的广播 */private void registerBroadcast() {IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("com.su.testbroadcast"); changeReceiver = new ChangeReceiver();registerReceiver(changeReceiver, intentFilter);}public class ChangeReceiver extends BroadcastReceiver {//实现接受者@Overridepublic void onReceive(Context context, Intent intent) {String title = intent.getStringExtra("msg");textView.setText(title);}}}
package com.su.testbroadcast;import android.app.Service;import android.content.Intent;import android.os.IBinder;public class MyService extends Service {@Overridepublic void onCreate() {super.onCreate();//發送廣播Intent intent = new Intent("com.su.testbroadcast");intent.putExtra("msg", "msg from service");sendBroadcast(intent);}@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}}


原创粉丝点击