推荐广播接收器未接收
Referral Broadcast Receiver is not receiving
你好,我正在 android 工作,我使用 INSTALL_REFERRER
来跟踪来源和媒介以及营销目的,并在用户来自特定来源时向他们支付一些资金。
所以这对应用程序非常重要,但目前它在 50% 的情况下有效,但几乎 50% 的情况下无效。我没能找出为什么它表现得很奇怪。
相信大家都更新了Google玩版5.x.xx.
我就是这样做的。我已经在 Whosebug 上阅读了我的线程,但对我没有任何帮助。 :(
<receiver
android:exported="true"
android:name="com.example.InstallReferrerReceiver" >
<intent-filter >
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
提前致谢。
跟进对问题评论的回复 - BroadcastReceiver
并不意味着执行任何长时间的操作,因为它会很快终止(这就是为什么你获得约 50% 的成功率 - 它 有时 有效,但不是为它设计的)。
阅读 BroadcastReceiver
documentation 中 Receiver Lifecycle
部分的更多信息 - 具体来说,引用以下内容:
anything that requires asynchronous operation is not available,
because you will need to return from the function to handle the
asynchronous operation, but at that point the BroadcastReceiver is no
longer active and thus the system is free to kill its process before
the asynchronous operation completes.
我建议您使用 IntentService
以便在您的 onReceive
中调用 startService
方法来启动 IntentService
在其 onHandleIntent
方法中您执行对 Web 服务的实际调用。
您可以使用用于调用 startService
的 Intent
向 IntentService
提供来自 BroadcastReceiver
的信息。
你好,我正在 android 工作,我使用 INSTALL_REFERRER
来跟踪来源和媒介以及营销目的,并在用户来自特定来源时向他们支付一些资金。
所以这对应用程序非常重要,但目前它在 50% 的情况下有效,但几乎 50% 的情况下无效。我没能找出为什么它表现得很奇怪。
相信大家都更新了Google玩版5.x.xx.
我就是这样做的。我已经在 Whosebug 上阅读了我的线程,但对我没有任何帮助。 :(
<receiver
android:exported="true"
android:name="com.example.InstallReferrerReceiver" >
<intent-filter >
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
提前致谢。
跟进对问题评论的回复 - BroadcastReceiver
并不意味着执行任何长时间的操作,因为它会很快终止(这就是为什么你获得约 50% 的成功率 - 它 有时 有效,但不是为它设计的)。
阅读 BroadcastReceiver
documentation 中 Receiver Lifecycle
部分的更多信息 - 具体来说,引用以下内容:
anything that requires asynchronous operation is not available, because you will need to return from the function to handle the asynchronous operation, but at that point the BroadcastReceiver is no longer active and thus the system is free to kill its process before the asynchronous operation completes.
我建议您使用 IntentService
以便在您的 onReceive
中调用 startService
方法来启动 IntentService
在其 onHandleIntent
方法中您执行对 Web 服务的实际调用。
您可以使用用于调用 startService
的 Intent
向 IntentService
提供来自 BroadcastReceiver
的信息。