具有多种跟踪服务的自定义 INSTALL_REFERRER 接收器
Custom INSTALL_REFERRER receiver with multiple tracking services
更新后 google 播放服务到 7.0.3 我的自定义 INSTALL_REFERRER 广播接收器坏了。
我使用 CampaignTrackingService(它也得到了更新)将意图转发给 google 分析。
在AndroidManifest.xml
<receiver
android:name="myapp.analytics.installReferrer.InstallReferrerBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
还有我的自定义 BroadCastReceiver(这就是问题所在):
public class InstallReferrerBroadcastReceiver extends BroadcastReceiver{
private final static String TAG = InstallReferrerBroadcastReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
// Send to Different Analytics services
// Send to Google Analytics
CampaignTrackingService campaignTrackingService = new CampaignTrackingService();
// I used onHandleIntent() in google-play services 7.0.0, in 7.3.0 its gone
campaignTrackingService.onHandleIntent(intent);
}
}
尝试扩展 CampaignTrackingReceiver 而不是 BroadcastReceiver。然后在你的 onReceive 方法中调用 super.onReceive(context, intent);您还从接收方调用服务。 Analytics 同时提供 CampaignTrackingService 和 CampaignTrackingReceiver。当您提供自己的接收器实现时,您应该将调用传递给 Analytics CampaignTrackingReceiver.onReceive 而不是直接调用该服务。 Android 保证您的应用程序进程不会在您 return 从 onReceive 之前被终止,但应用程序进程可能会在服务启动之前被终止,您将失去活动。 Analytics provided receiver 将正确地切换到服务以避免此问题(它需要部分唤醒锁定权限)。
更新后 google 播放服务到 7.0.3 我的自定义 INSTALL_REFERRER 广播接收器坏了。 我使用 CampaignTrackingService(它也得到了更新)将意图转发给 google 分析。
在AndroidManifest.xml
<receiver
android:name="myapp.analytics.installReferrer.InstallReferrerBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
还有我的自定义 BroadCastReceiver(这就是问题所在):
public class InstallReferrerBroadcastReceiver extends BroadcastReceiver{
private final static String TAG = InstallReferrerBroadcastReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
// Send to Different Analytics services
// Send to Google Analytics
CampaignTrackingService campaignTrackingService = new CampaignTrackingService();
// I used onHandleIntent() in google-play services 7.0.0, in 7.3.0 its gone
campaignTrackingService.onHandleIntent(intent);
}
}
尝试扩展 CampaignTrackingReceiver 而不是 BroadcastReceiver。然后在你的 onReceive 方法中调用 super.onReceive(context, intent);您还从接收方调用服务。 Analytics 同时提供 CampaignTrackingService 和 CampaignTrackingReceiver。当您提供自己的接收器实现时,您应该将调用传递给 Analytics CampaignTrackingReceiver.onReceive 而不是直接调用该服务。 Android 保证您的应用程序进程不会在您 return 从 onReceive 之前被终止,但应用程序进程可能会在服务启动之前被终止,您将失去活动。 Analytics provided receiver 将正确地切换到服务以避免此问题(它需要部分唤醒锁定权限)。