現在、Google の Activity Recognition API を使用するアプリを作成していますが、onHandleIntent メソッドにブレーク ポイントを配置してサービスから渡されたインテントを調べると、古いデータが表示されます。私が道路上や高速道路上にいるにもかかわらず、アクティビティは STILL として戻ってきます。[参考までに、私は運転していませんが、移動中の車両に乗っています:)] 結果をフラッシュする方法はありますか? 切断して再接続しても、まだこの STILL の読み取り値が表示されます。
1 に答える
0
質問で説明した問題の部分的な解決策である場合は、これを共有すると思いました。コードを微調整しましたが、現時点ではこの問題は発生していないようです。アクティビティ認識に渡されるインテントに対して私が行っていることは、動的 ID を与えることです。私の理論では、切断して再接続すると、同じコードが取得され、古い状態がキャッシュされている可能性があります。これで、更新の削除が呼び出された後にのみIDが変更されるため、実際には何の害もありません。これにより、キャッシュされた状態が防止されることを願っています。
private static void intentID(){
if(intentID == 0)
intentID = (int)(System.currentTimeMillis());
return intentID;
}
PendingIntent pendingIntent = PendingIntent.getService(mContext, intentID(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
//the modified pendingIntent being used
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(getActivityRecognitionClient(), 1000*10, pendingIntent)
お役に立てれば!
于 2015-04-20T20:16:25.527 に答える