1.首先,Activity的onCreate方法中要有启动后台Service的Intent
Intent intent = new Intent(this, xxxService.class);
startService(intent);
为了能在AndroidManifest.xml中注册Activity中的receiver(它是内部类形式),需要把其定义成static的
public static class MyServiceReceiver extends BroadcastReceiver { ...}
注意,当把receiver定义成static时,就不能使用non-static的sendBroadcast(intent) 方法了,如果要在receiver中发送广播消息,只能在onCreate中通过代码的方式注册receiver
2.在清单文件中注册Activity以及其内部receiver
<activity android:name=".activity.xxxActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" />