2016-09-26 13 views
4

以下のコンソール出力に表示されるため、アプリケーションは通常、それをするために。これは起動時に発生します。V/FA:キューイングされたサービスタスクの処理:1、続いてV/FA:非アクティブ、AppMeasurementServiceからの切断

なぜこれほど長い時間がかかりますか?それはサービスがあきらめる前に複数回接続しようとしているからですか?また、実際にこの出力の背後にあるロジックは何ですか?

注:私は自分のアプリケーション内の任意のFirebaseAnalyticsコードを持っていない

09-26 23:34:48.998 /package V/FA: Processing queued up service tasks: 1 
09-26 23:34:54.009 /package V/FA: Inactivity, disconnecting from AppMeasurementService 
09-26 23:34:57.357 /package V/FA: Activity paused, time: 89152495 
09-26 23:34:57.383 /package V/FA: onActivityCreated 

build.gradle(アプリ)

//Firebase 
compile 'com.google.firebase:firebase-core:9.4.0' 
compile 'com.google.firebase:firebase-database:9.4.0' 
compile 'com.google.firebase:firebase-invites:9.4.0' 
compile 'com.firebase:geofire-android:2.0.0' 
compile 'com.firebaseui:firebase-ui:0.5.1' 
+1

AppManagemenServiceはFirebase Analyticsの一部です。 (私はこのFirebaseの機能の専門家ではない)ユーザーがアプリを開いたという事実を捉えようとしています。 –

+0

@FrankvanPuffelenサービスがfirebase-coreに付属しているのがわかりますが、私が本当に関心を持っているのは、その周りのプロセス全体が長引くため、それをどう扱うのかです。どんなアイデアも歓迎です。 –

+1

長い間かかる「プロセス全体」とは何ですか?このログは、アプリケーションの起動をブロックしません。 –

答えて

4

"処理は、サービスタスクをキューに入れられた" と " AppMeasurementServiceから切断されました "というメッセージは、メインのアプリケーションスレッドではなく、ワーカースレッドに記録されているため、アプリを保持していません。

キューに登録されたサービスタスクの処理はほぼ即時に完了する可能性があります。非アクティブによる切断は、Firebase Analyticsにしばらくの間何もしないように頼んだことを意味するだけで、誰かが行うまでサービスを切断してしまうという意味です。これは正常です。特に、あなたのアプリがFirebaseAnalyticsを呼び出さない場合は特にそうです。

「アクティビティの一時停止」は、アプリの現在のアクティビティ(画面)が表示から削除されたことを意味します。これはあなたのアプリがやったことかもしれないし、ユーザーの行動かもしれない。その直後に「onActivityCreated」というメッセージが表示されるため、あなたのアプリは1つのアクティビティを取り除き、別のアクティビティに置き換えたと言います。

あなたのアプリが何をしているかについての情報がなければ、アプリの応答が遅い理由を推測することは非常に困難です。

ところで、 "adb logcat -v threadtime"を使用して、ロギングステートメントのプロセスIDとスレッドIDを取得してみてください。

0

あなたはこの問題

Inactivity, disconnecting from the service

に従っている場合は、この問題を削除するには、いくつかの手順を実行する必要があり、この問題に直面していません。 Reason: You face this problem because in the background there are few-thread and the process is running in the android studio which uses the connection of firebase and your process not get the connection.

ステップ:

  1. アンインストールお使いの携帯/エミュレータからアプリ。
  2. アンドロイドスタジオのメインメニューバーのファイルオプションに移動します。
  3. その後、Invalidatecasha/restartをクリックします。

あなたはアンドロイドスタジオを再起動してもエラーはなくなります。 バックエンドのスレッドとプロセスはすべて閉じられているためです。

ハッピーコーディング。

関連する問題