Общение с BroadcastReceiver для Activity очень обидчиво;Что делать, если действие уже прошло?
Если бы я был вами, я бы настроил новый BroadcastReceiver внутри действия, который получал бы сообщение ЗАКРЫТЬ:
private BroadcastReceiver closeReceiver;
// ...
closeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//EDIT: receiving parameters
String value = getIntent().getStringExtra("name");
//... do something with value
finish();
}
};
registerReceiver(closeReceiver, new IntentFilter(CLOSE_ACTION));
Затем из SMSBroadcastReceiver вы можете отправить это действие:
Intent i = new Intent(CLOSE_ACTION);
i.putExtra("name", "value"); //EDIT: this passes a parameter to the receiver
context.sendBroadcast(i);
Надеюсь, это поможет?