0

わかりました、これは非常にばかげた問題ですが、この 1 時間は私を悩ませていました。私はそれを説明するために最善を尽くします。

基本的に、私がプログラミングしているアプリには、タブページのフラグメントを含むタブアクティビティがあります。タブの 1 つにリストが表示されます。このリストは、特定の場所からのユーザーの距離によって並べ替えられます。

ユーザーの現在地が必要なので、すべてのフラグメントをホストするアクティビティに 2013 の場所 API を実装しました。

私の問題は、フラグメントが作成されると、リストがソートされることです。ただし、リストを並べ替えるには、ユーザーの場所が必要です。ただし、アクティビティで locationclient が接続される前にフラグメントが作成されるため、ユーザーの場所はまだ決定されていません。locationclient が接続されていないため、アプリケーションをクラッシュさせるエラーが発生します。

要約すると、フラグメントは oncreateview メソッドで場所にアクセスしようとしていますが、このメソッドは場所クライアントが接続して場所を取得する前に呼び出されるため、アプリがクラッシュします。

これを回避するためにいくつかの方法を試しましたが、困惑しています。

場所が決定されるまでフラグメントの作成を遅らせる方法はありますか? フラグメント/タブ作成コードを onConnected() コールバック内に入れてみましたが、これはバグです (たとえば、デバイスを回転させるとアプリがクラッシュします)。

私はアプリ開発にかなり慣れていないため、アクティビティのライフサイクルを誤解している可能性があります。どんな助けでも大歓迎です。

ありがとう。

4

0 に答える 0