如果我正确理解你的问题,你想接收广播(当短信到达)而您的活动展示。
如果是这样,我发现了一个很好的模式来做这件事回来(不记得我从哪里得到它,将是很好的归功于原作者)。
首先,创建一个接口:
public interface Receiver {
public void onReceive(Context context, Intent intent);
}
现在创建了BroadcastReceiver的子类,我们可以在运行时动态注册:
public class PortableReceiver extends BroadcastReceiver {
private Receiver mReceiver;
public void setReceiver(Receiver receiver) {
mReceiver = receiver;
}
public Receiver getReceiver() {
return mReceiver;
}
@Override
public void onReceive(Context context, Intent intent) {
if (mReceiver != null)
mReceiver.onReceive(context, intent);
else
Log.w("PortableReceiver", "Dropping received Result");
}
}
现在我们可以在活动课上使用PortableReceiver:
public class MyActivity implements Receiver {
private PortableReceiver mReceiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReceiver = new PortableReceiver();
mReceiver.setReceiver(this);
}
@Override
public void onResume() {
super.onResume();
// Register the receiver
IntentFilter filter = new IntentFilter();
filter.addAction("_my_intent_action"); //TODO: add actions to filter just as you would in your AndroidManifest
registerReceiver(mReceiver, filter, null, null);
}
@Override
public void onPause() {
super.onPause();
unregisterReceiver(mReceiver);
}
@Override
public void onReceive(Context context, Intent intent) {
//TODO: Your code goes here!
}
}
现在,你有你的Activity类直接处理广播,所以你可以访问它提供的所有功能。