Intent を送信し、通知を受け取りたい各 Activity に BroadcastReceiver を登録することで、アクティビティを通知できます。
サービスまたはアプリケーションをコンテキストにすることができます。
Intent i = new Intent("MY_ACTION_FROM_SERVICE_STRING");
context.sendBroadcast(i);
アクティビティ:
public class MyActivity extends Activity {
private ActivityBroadcastReceiver recvr;
public void onReceiveCommand() {
//do something
}
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
recvr = new ActivityBroadcastReceiver(this);
this.registerReceiver(recvr,
new IntentFilter("MY_ACTION_FROM_SERVICE_STRING"));
}
}
レシーバー:
public class ActivityBroadcastReceiver extends BroadcastReceiver {
private MyActivity target;
public ActivityBroadcastReceiver(MyActivity target) {
this.target = target;
}
@Override
public void onReceive(Context context, Intent intent) {
target.onReceiveCommand();
}
}