2016-10-10 3 views
0

3つのアクティビティを持つアンドロイドアプリケーションを作成しようとしています。メイン画面には情報の要約(現在は静的テキスト)が含まれており、ナビゲーションリンクの1つは地図アクティビティに移動します。Androidアクティビティ間にポリゴンとLongLat値を保存する

メインメニューに戻ってマップに戻ると、マップからポリゴンが消去され、以前にユーザーが従っていたルートも失われます。これは、マップアクティビティが再度ナビゲートされると、これらの値を初期化するcreateメソッドを再度呼び出すためです。

これらを他の場所で初期化できますか、またはユーザーがこのアクティビティから移動したときにいつでもSharedPreferences/Intentsに保存してから、createメソッドが再度呼び出されたときに再ロードする必要がありますか?

最初に私は次のオブジェクトを永続化しようとしていますが、すべてのユーザージオデータを保持し、マップに戻るときにカスタムクラスをロードすることができればいいと思います。

private ArrayList<LatLng> routePoints; 
Polygon geoFencePolygon; 

私はいくつかの記事を読んだが、私は私が正しく物事をやっているようにしたいようなアプローチは、このようなデータを保存するのに適しているので、不明な点がどのAndroidの開発に新たなんです。アプリケーション 、あなたを追跡し、いくつかのgeofancingやGPSに取り組んでいるよう

結局私は、彼らがどこにもアプリ内に移動した場合にも実行されている位置追跡を維持する必要がありますが、私は最初の基本を学んでいます:)

答えて

0

が見えますあなたの位置追跡を継続したい場合でも、彼は地図のアクティビティでない場合でも また、一時的な場所にデータを保存したい場合は

私は自分の位置を追跡するための最初の活動から始まるアンドロイドサービスそれを いくつかの場所に保管してください。マップのアクティビティに達すると、一度にすべてのロケーションデータを取得できます。私はあなたの場所はあなたが

+0

、その位置データ、それ以上を必要といけないときに、テーブルをドロップすることができ 共有好みのinsted保存するSQLiteのを使用するsugestます

が、これはリアルタイムに行われるべきか?私はユーザーが旅行を止めるまで詳細を保持することを望んでいましたが、SQLiteまたはそれに類するものすべての詳細を維持するのがベストプラクティスですか?もしそうなら、今私はこれを調べます。私は場所のトラッキングを有効にしていますが、主なアクティビティにはないので、アクティビティ間を移動するとき、またはアプリが最小限に抑えられている場合は、これをサービスに移動してロギングの場所を確実に維持する必要がありますか? – Andrew

+0

はいGPSの作業はサービスで行う必要があります.GPSのログを記録するには、sqliteに格納する必要があります。それが最小限に抑えられている間も追跡するべきだと私は思うよりもアプリを追跡している場合。あなたのアプリが追跡する必要がなくなるまでサービスを停止すべきでないことを意味します –

+0

これはサービスまたはIntentServiceにとって理想的ですか?この実行によってメインスレッドがブロックされることは望ましくないようです。サービスからのデータを、それを必要とする他のアクティビティに戻すにはどうすればよいですか? SQLへの書き込みとその後の読み込みはちょっとちょっとしたようですので、後でSQLに格納しながら、アプリケーションを更新する方が良いでしょうか? – Andrew

関連する問題