Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 转介广播接收器未接收_Android_Broadcastreceiver - Fatal编程技术网

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>