2013-06-09 7 views
7

私が試してみて、Facebookのキャンペーンからのインストールを追跡する方法を見つけるためのFacebook SDK 3.0に見て、ドキュメントでこれを見た:onResumeのcom.facebook.Settings.publishInstallAsyncはなぜですか?

FBのAndroid SDK 3.0の場合は、onResume(に以下を追加します)あなたのアプリの各アクティビティの: com.facebook.Settings.publishInstallAsync(コンテキスト、YOUR_APP_ID);

私は2つの基本的な質問があります。

  1. をなぜこの出来事は、すべての活動ではなく、ランチャー活動でありますか?

  2. onStartの代わりにonResumeメソッドでこの現象が発生するのはなぜですか? Androidでは、onResumeでこのようなことを行わないことをおすすめします。

編集 - それはこれをやって非同期だにもかかわらず、何度も愚かと国連必要

答えて

2

を思わ両方の質問への答えはあることは、すべてのonResume()メソッドで呼び出しを含めることですユーザーが最初にアプリを起動したときのネットワーク障害を扱っているアクティビティ。言い換えれば、最初のアクティビティが開始されたときだけでなく、アクティビティがフォアグラウンドで表示されるたびに、あなたのアプリはインストールを公開しようとします。

Facebook Developers Mobile App Install Adsから:

このアプリは、ネットワークエラーが発生した場合、ユーザは初めて、そして再び将来的にアプリを開いたときのFacebookにイベントをインストールバックpingを実行することができます。私たちのクライアントコードは、サーバーから成功コードを取得するとインストールの送信を停止し、バックエンドは同じデバイスに対して複数のヒットを受信すると、インストールを1回だけカウントします。

+1

私は気付いていませんこれを 'onStart'や' onCreate'からやってはどうでしょう。なぜなら、アクティビティが再開するたびにこれをやり直す理由はありません。 – thepoosh

+0

私は同意します。しかし、呼び出しは本質的には一度もノーオペレーションですSDKがサーバーから応答を受信しました。 – David

+0

アプリの再開時にもう一度試してみると、ネットワーク障害を検出して回避する機会が少し増えます。 それ以外の場合は、ユーザーがアプリを終了してからもう一度やり直す必要があります。ユーザーが実際に終了するのではなく、ホームボタンを使用しただけで本当に問題になります。 しかし、私が知る限り、何らかの理由でそれをやりたいとは思わないなら、あなたはそれを行うことができます。それはちょうどお勧めしません。 – arlanthir