简单代码注册广播接收者并监听多个广播

来源:互联网 发布:淘宝买家id在哪里看 编辑:程序博客网 时间:2024/04/30 08:33

话不多说,直接上代码

创建服务类,并在服务中创建广播接收者的内部类,代码如下

注:manifest中注册服务

<service android:name=".MyService" />

package com.example.sensordemo;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;import android.util.Log;public class MyService extends Service {    private MyReceiver receiver;    @Override    public IBinder onBind(Intent intent) {        return null;    }    //服务创建的时候注册广播接收者    @Override    public void onCreate() {        super.onCreate();        receiver = new MyReceiver();        IntentFilter filter = new IntentFilter();        filter.addAction("com.reach.receiver.key1.low");        filter.addAction("com.reach.receiver.key1.high");        filter.addAction("com.reach.receiver.key2.low");        filter.addAction("com.reach.receiver.key2.high");        filter.addAction("com.reach.receiver.key3.low");        filter.addAction("com.reach.receiver.key3.high");        registerReceiver(receiver, filter);    }    @Override    public void onDestroy() {        super.onDestroy();        unregisterReceiver(receiver);    }    //服务里面的一个方法    public void callServiceMethod(String s) {        Log.e("MyService",s);    }    //内部类实现广播接收者    private class MyReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            switch (intent.getAction()) {                case "com.reach.receiver.key1.low":                    callServiceMethod("com.reach.receiver.key1.low");                    break;                case "com.reach.receiver.key1.high":                    callServiceMethod("com.reach.receiver.key1.high");                    break;                case "com.reach.receiver.key2.low":                    callServiceMethod("com.reach.receiver.key2.low");                    break;                case "com.reach.receiver.key2.high":                    callServiceMethod("com.reach.receiver.key2.high");                    break;                case "com.reach.receiver.key3.low":                    callServiceMethod("com.reach.receiver.key3.low");                    break;                case "com.reach.receiver.key3.high":                    callServiceMethod("com.reach.receiver.key3.high");                    break;            }        }    }}

MainActivity中代码:

import android.app.Activity;import android.content.Intent;public class MainActivity extends Activity {    Intent intent;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        intent = new Intent(this, MyService.class);        startService(intent);    }    @Override    protected void onDestroy() {        super.onDestroy();        stopService(intent);    }}

0 0