Android 转介广播接收器未接收
你好,我在安卓上工作,我使用Android 转介广播接收器未接收,android,broadcastreceiver,Android,Broadcastreceiver,你好,我在安卓上工作,我使用安装\u referer跟踪来源、媒体和营销目的,并在用户来自特定来源时向他们支付一些资金 因此,这对应用程序非常重要,但目前它在50%的情况下有效,但在近50%的情况下无效。我没能弄清楚为什么它的行为很奇怪 我相信每个人都已经更新了Google Play版本5.x.xx 我就是这样做的。我已经阅读了有关stackoverflow的帖子,但没有任何效果( 提前感谢。跟进对问题评论的回复-BroadcastReceiver并不意味着要执行任何长时间的操作,因为它会很
安装\u referer
跟踪来源、媒体和营销目的,并在用户来自特定来源时向他们支付一些资金
因此,这对应用程序非常重要,但目前它在50%的情况下有效,但在近50%的情况下无效。我没能弄清楚为什么它的行为很奇怪
我相信每个人都已经更新了Google Play版本5.x.xx
我就是这样做的。我已经阅读了有关stackoverflow的帖子,但没有任何效果(
提前感谢。跟进对问题评论的回复-
BroadcastReceiver
并不意味着要执行任何长时间的操作,因为它会很快终止(这就是为什么您会获得约50%的成功率-它有时可以工作,但不是专门为它设计的)
更多信息,请阅读位于的接收器生命周期
部分,具体如下:
任何需要异步操作的操作都不可用,
因为您需要从函数返回来处理
异步操作,但此时BroadcastReceiver不是
更长的活动时间,因此系统可以自由终止其进程
异步操作完成
我建议您使用IntentService
以便在onReceive
中调用startService
方法来启动IntentService
,在其onHandleIntent
方法中执行对web服务的实际调用
您可以使用用来调用
startService
的Intent
向IntentService
提供来自BroadcastReceiver
的信息,以跟进对问题的评论的响应-BroadcastReceiver
并不意味着要执行任何长操作,因为它会很快终止(这就是为什么您可以获得约50%的成功率-它有时可以工作,但不是专门为它设计的)
更多信息,请阅读位于的接收器生命周期
部分,具体如下:
任何需要异步操作的操作都不可用,
因为您需要从函数返回来处理
异步操作,但此时BroadcastReceiver不是
更长的活动时间,因此系统可以自由终止其进程
异步操作完成
我建议您使用IntentService
以便在onReceive
中调用startService
方法来启动IntentService
,在其onHandleIntent
方法中执行对web服务的实际调用
您可以使用用来调用
startService
的Intent
向IntentService
提供来自BroadcastReceiver
的信息,以跟进对问题的评论的响应-BroadcastReceiver
并不意味着要执行任何长操作,因为它会很快终止(这就是为什么您可以获得约50%的成功率-它有时可以工作,但不是专门为它设计的)
更多信息,请阅读位于的接收器生命周期
部分,具体如下:
任何需要异步操作的操作都不可用,
因为您需要从函数返回来处理
异步操作,但此时BroadcastReceiver不是
更长的活动时间,因此系统可以自由终止其进程
异步操作完成
我建议您使用IntentService
以便在onReceive
中调用startService
方法来启动IntentService
,在其onHandleIntent
方法中执行对web服务的实际调用
您可以使用用来调用
startService
的Intent
向IntentService
提供来自BroadcastReceiver
的信息,以跟进对问题的评论的响应-BroadcastReceiver
并不意味着要执行任何长操作,因为它会很快终止(这就是为什么您可以获得约50%的成功率-它有时可以工作,但不是专门为它设计的)
更多信息,请阅读位于的接收器生命周期
部分,具体如下:
任何需要异步操作的操作都不可用,
因为您需要从函数返回来处理
异步操作,但此时BroadcastReceiver不是
更长的活动时间,因此系统可以自由终止其进程
异步操作完成
我建议您使用IntentService
以便在onReceive
中调用startService
方法来启动IntentService
,在其onHandleIntent
方法中执行对web服务的实际调用
您可以使用
Intent
调用startService
来向IntentService
提供来自BroadcastReceiver
的信息,您可以分享onReceive
方法的一些代码,或者至少描述一下您在那里做了什么?您如何验证它没有被调用?可以吗是不是你正在做一个很长的操作,但还没有完成?@Muzikant我正在调用一个web服务,但它在asynctask中。我们不应该在它中执行AsyntTask吗?你不应该在onReceive
方法中启动asynctask
。我添加了一个答案,其中包含详细的解释和解决问题的建议,你可以分享吗您的onReceive
方法的一些代码,或者至少描述了您在那里执行的操作?您是如何验证它没有被调用的?可能是因为您正在执行一个长时间的操作,而这个操作正好可以执行吗
<receiver
android:exported="true"
android:name="com.example.InstallReferrerReceiver" >
<intent-filter >
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>