navigator.geolocation
モバイルデバイスの座標を追跡するために呼び出しを利用するPhoneGapに組み込まれたアプリがあります。ユーザーは追跡の開始と終了を制御できます。このアプリは、バックグラウンドで座標の更新を受信するように構築されています。このアプリは、Android デバイスと iOS デバイスの両方でリリースされています。
Android版はバックグラウンドでクラッシュしやすいようです。一部の携帯電話では問題なく動作しますが、多くの携帯電話では、アプリがバックグラウンドで座標データを収集している間に、単に停止します。以下に LogCat ログを投稿しました。Manager がプロセスで「もう必要ありません」と呼び出したCCWalkerActivity
直後にWIN DEATH が発生したようです (両方とも以下に太字で示されています)。Activity
しかし、なぜこれが起こっているのか、なぜ頻繁に起こっているのかを判断することはできません.
これは Phonegap の問題ですか? (を使用して) フォアグラウンド サービスを処理できるプラグインを作成することはstartForeground()
有益でしょうか?
10-19 14:50:12.439 D/dalvikvm( 496): GC_CONCURRENT 解放 1917K、28% 解放 12417K/17031K、外部 11622K/13670K、一時停止 12ms+10ms 10-19 14:50:13.040 D/CordovaLog(6275): isGPSEnabled 成功、精度: 12 10-19 14:50:13.040 D/CordovaLog(6275): file:///android_asset/www/lib.js: 24 行目: isGPSEnabled 成功、精度: 12 10-19 14:50:13.040 I/Web コンソール( 6275): isGPSEnabled 成功、精度: 12 at file:///android_asset/www/lib.js:24 10-19 14:50:13.072 D/CordovaLog (6275): collectLocationData 成功: 12 10-19 14:50:13.072 D/CordovaLog(6275): file:///android_asset/www/lib.js: 24 行目: collectLocationData 成功: 12 10-19 14:50:13.072 I/Web コンソール (6275): collectLocationData 成功: 12 at file:///android_asset/www/lib.js:24 10-19 14:50:14.072 D/WifiLocator (976): 場所のない AP が多すぎます。場所を計算したり、サーバーに移動したりしません。hasLocation=0 noLocation=0 cacheMiss=0 10-19 14:50:14.072 D/CellLocator( 976): 見つかったセルの場所: 位置 [編集済み] 10-19 14:50:14.072 D/androidNlpServiceThread( 976): 場所の報告 [mProvider=network,mTime=1350672614078,mLatitude=40.8390777,mLongitude=-73.6949326,mHasAltitude=false,mAltitude=0.0,mHasSpeed=false,mSpeed=0.0 ,mHasBearing=false,mBearing=0.0,mHasAccuracy=true,mAccuracy=1123.0,mExtras=Bundle[{networkLocationSource=cached, networkLocationType=cell}]] 10-19 14:50:14.087 D/libgps (496): GpsInterface_inject_location (40.839078、-73.694933、1123.000) 10-19 14:50:14.087 D/libgps (496): MPDINJPOS_REQ メッセージ ID 12015 10-19 14:50:14.087 D/ClientReporter(976): 報告された場所 10-19 14:50:14.095 D/CordovaLog (6275): collectLocationData の成功: 1123 10-19 14:50:14.095 D/CordovaLog(6275): file:///android_asset/www/lib.js: 24 行目: collectLocationData 成功: 1123 10-19 14:50:14.095 I/Web コンソール (6275): collectLocationData 成功: 1123 at file:///android_asset/www/lib.js:24 10-19 14:50:14.118 D/androidNlpServiceThread( 976): 期間 45 でリスナー com.google.android.location.internal.client.NetworkLocationClient$1@40552710 を追加 10-19 14:50:14.118 D/androidNetworkLocationListeners(976): まだリスナー com.google.android.location.internal.client.NetworkLocationClient$1@40552710 があります 10-19 14:50:14.118 I/ActivityManager( 496): もう com.CCtracks.CCWalker は必要ありません (pid 6275): 非表示 #21 10-19 14:50:14.126 D/WifiLocator (976): 場所のない AP が多すぎます。場所を計算したり、サーバーに移動したりしません。hasLocation=0 noLocation=0 cacheMiss=0 10-19 14:50:14.126 D/CellLocator( 976): 見つかったセルの場所: 位置 [編集済み] 10-19 14:50:14.126 D/androidNlpServiceThread( 976): 場所の報告 [mProvider=network,mTime=1350672614137,mLatitude=40.8390777,mLongitude=-73.6949326,mHasAltitude=false,mAltitude=0.0,mHasSpeed=false,mSpeed=0.0 ,mHasBearing=false,mBearing=0.0,mHasAccuracy=true,mAccuracy=1123.0,mExtras=Bundle[{networkLocationSource=cached, networkLocationType=cell}]] 10-19 14:50:14.134 D/ClientReporter(976): 報告された場所 10-19 14:50:14.204 I/WindowManager(496): WIN DEATH: ウィンドウ {405a97d0 com.CCtracks.CCWalker/com.CCtracks.CCWalker.CCWalkerActivity 一時停止 = false} 10-19 14:50:14.228 D/androidNlpServiceThread( 976): 期間 86400 でリスナー com.google.android.location.internal.client.NetworkLocationClient$1@40552710 を追加 10-19 14:50:14.228 D/androidNetworkLocationListeners( 976): まだリスナー com.google.android.location.internal.client.NetworkLocationClient$1@40552710 があります 10-19 14:50:14.236 D/WifiLocator (976): 場所のない AP が多すぎます。場所を計算したり、サーバーに移動したりしません。hasLocation=0 noLocation=0 cacheMiss=0 10-19 14:50:14.236 D/CellLocator( 976): 見つかったセルの場所: 位置 [編集済み] 10-19 14:50:14.236 D/androidNlpServiceThread( 976): 場所の報告[mProvider=network,mTime=1350672614246,mLatitude=40.8390777,mLongitude=-73.6949326,mHasAltitude=false,mAltitude=0.0,mHasSpeed=false,mSpeed=0.0 ,mHasBearing=false,mBearing=0.0,mHasAccuracy=true,mAccuracy=1123.0,mExtras=Bundle[{networkLocationSource=cached, networkLocationType=cell}]] 10-19 14:50:14.243 D/ClientReporter(976): 報告された場所 10-19 14:50:14.595 W/GpsLocationProvider(496): uid 1000 の不要な削除リスナー 10-19 14:50:14.595 D/libgps_GpsMgr (496): schedGps() モード: 3、tbf: 0、精度: 0、パフォーマンス: 0、pAgps: null 10-19 14:50:14.595 D/libgps (496): GpsInterface_stop() 10-19 14:50:14.603 D/libgps (496): action_thread_main(): BP がセッションにないため、偽の END コールバックを送信します 10-19 14:50:14.603 D/libgps (496): status_cb: GPS_STATUS_SESSION_END (2) 10-19 14:50:14.603 D/libgps_GpsMgr (496): sched() セット モード: 3、tbf: 0 10-19 14:50:14.634 D/libgps (496): GpsInterface_inject_location (40.839078、-73.694933、1123.000) 10-19 14:50:14.634 D/libgps (496): MPDINJPOS_REQ メッセージ ID 12015