2012-05-04 4 views
2

私はcwac-locpollを使用しています。素晴らしい仕事をしています。ここでcwac-locpollを使用したWakeLockアンダーロック例外

java.lang.RuntimeException: WakeLock under-locked com.commonsware.cwac.locpoll.LocationPoller 
at android.os.PowerManager$WakeLock.release(PowerManager.java:339) 
at android.os.PowerManager$WakeLock.release(PowerManager.java:299) 
at com.commonsware.cwac.locpoll.WakefulThread.onPostExecute(WakefulThread.java:59) 
at com.commonsware.cwac.locpoll.LocationPollerService$PollerThread.onPostExecute(LocationPollerService.java:231) 
at com.commonsware.cwac.locpoll.WakefulThread.run(WakefulThread.java:93) 

はあなたが見ることができるように、私のLocationReceiverクラスであるしかし、私のユーザーの一部は、次のような問題を取得している、ちょうどヘルパークラスを経由して私のアプリSharedPreferencesで得られた位置を格納します。

public class LocationReceiver extends BroadcastReceiver { 
    private static final String TAG = "LocationReceiver"; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    Bundle b = intent.getExtras(); 
     Location loc = (Location) b.get(LocationPoller.EXTRA_LOCATION); 

     if (loc == null) { 
      loc = (Location) b.get(LocationPoller.EXTRA_LASTKNOWN); 

      if (loc == null) { 
       Log.w(TAG, "Unable to get location. " + intent.getStringExtra(LocationPoller.EXTRA_ERROR)); 
      } else { 
       Log.w(TAG, "Timeout getting location, using previous one " + loc); 
      } 
     } else { 
      Log.i(TAG, "Got location " + loc); 
     } 

     // save location in preferences 
     if (loc != null) { 
      PrefsHelper.setLastLocation(loc.getLatitude(), loc.getLongitude()); 
     } 
    } 
} 

私はまた別のcwac-覚醒WakefulIntentServiceこの最後の位置を取得し、何かを使用していますが、それらはindepentendly実行するように設計されています。言い換えれば:

  1. LocationReceiverは、すべての今してSharedPreferencesで最後の既知の位置を保存するためにcwac-locpollによって呼び出されます。
  2. WakefulIntentServiceは、この場所を取得して何かを行う予定です(個別に)。

ありがとう!

答えて

1

これはお使いのBroadcastReceiverとは関係ありません。 Androidがサービスを取り除いて後で取り戻すような、最近の変更をWakefulIntentServiceからLocationPollerにリバースする必要があります。

私はこれにfiled an issueを持っています。修正がリリースされたときの注意点については、その問題を追跡してください。このコンポーネントの性質上、長時間のテストが必要です。パッチをリリースするには少なくとも24時間はかかるでしょう。

+0

クイックレスポンスのための@CommowsWareに感謝します。私は間違いなくパッチを見守っています。 – gdecaso

+0

CommonsWareの答えによれば、この問題は[v0.2.1](https://github.com/commonsguy/cwac-locpoll/issues/5)で解決されているようです。このバージョンに切り替えると問題は発生しませんでした。 – SHaKie

+0

確かに。今解決されました。 – gdecaso

関連する問題