android 广播接收器接收广播,Android的 - 如何使用广播接收器来读取短信?

如果我正确理解你的问题,你想接收广播(当短信到达)而您的活动展示。

如果是这样,我发现了一个很好的模式来做这件事回来(不记得我从哪里得到它,将是很好的归功于原作者)。

首先,创建一个接口:

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类直接处理广播,所以你可以访问它提供的所有功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值