更新谷歌播放服务到7.0.3我的自定义INSTALL_REFERRER braodcast接收器坏了。 我使用了CampaignTrackingService(也获得了更新)将意图转发给谷歌分析。
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>
我的Custom 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);
}
}
答案 0 :(得分:1)
尝试扩展CampaignTrackingReceiver而不是BroadcastReceiver。然后在你的onReceive方法中调用super.onReceive(context,intent);您也从接收方呼叫服务。 Analytics提供CampaignTrackingService和CampaignTrackingReceiver。当您提供自己的接收器实现时,您应该将调用传递给Analytics CampaignTrackingReceiver.onReceive,而不是直接调用该服务。 Android保证在您从onReceive返回之前不会杀死您的应用程序进程,但应用程序进程可能会在服务启动之前被终止并且您将丢失该活动。分析提供的接收器将正确地切换到服务以避免此问题(它需要部分唤醒锁定权限)。