繁体   English   中英

Android BroadcastReceiver在后台接收

[英]Android BroadcastReceiver Receive in Background

我正在向活动注册一个BroadcastReceiver。 活动正常,但在活动停止时不起作用。 即onReceive方法中的代码在收到广播消息时不会执行(因为活动已停止)。

这是我调用的代码

PendingIntent sentPI = PendingIntent.getBroadcast(act,0,new Intent(sms_sending).putExtra("s_id",id),0);
act.registerReceiver(new SentBroadcast(id, act), new IntentFilter(smssent));

我认为我必须启动一项服务才能在后台接收它,但是我没有得到如何做的信息。

编辑

这是我在应用程序中注册的方式。

<receiver android:name="com.smsapp.sendsms$SentBroadcast" android:exported="false">
        <intent-filter>
            <action android:name="com.smsapp.sendsms.SendSMS.smssent" />
        </intent-filter>

您已经在Manifest中声明了接收者,但是稍后您仍然在Activity上再次注册它吗? 您是否在onStop或onDestroy中注销了该接收器? 如果是,请删除在活动中的注册接收,在清单中注册就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM