2012-03-04 8 views
0

私のアプリケーションは、ファイルを読み込んでその情報を処理して、アクティビティによってリストの必要性を構築する必要があります。私はそれを行うには良い場所を見つけることができません。私が持っているのは、活動の中の{仕事をする}ブロックです。私が{...}を置かないと、エラーがあります。これは機能しますが、これを行うには正しい方法ですか?より良い方法がありますか?この処理は1回だけ実行されます。 http://developer.android.com/reference/android/app/Activity.htmlonCreate()の前に行う必要がある処理はどこに入れますか?

は、あなたが見ることができるように、onCreate()Activityが起動されたときに起こる最初のものです:あなたの助け

クリフ

答えて

2

それは一種のあなたがやっている正確に何に依存しますが、長い処理を行うための一つの共通の方法は、そのdoInBackground方法で処理を行い、そのonPostExecute方法でUIを更新AsyncTaskのサブクラスを作成することです。次に、AsyncTaskのインスタンスをonCreateまたはonResumeに作成し、そのexecuteメソッドを呼び出すと、処理が実行されている間に応答可能なUIが作成されます。

処理がその特定のアクティビティに縛られている場合は、ユーザーがアクティビティを離れた場合に処理を停止することができます。処理がより一般的に有用で、アプリ内の別の場所で使用される可能性のあるデータが生成された場合は、ServiceまたはIntentServiceのサブクラスを使用することを検討します。

特記事項は常に役に立ちます。あなたがしようとしていることの詳細を共有することができれば、最も適切な解決法を提案する方が簡単になります。

+0

ファイルには書籍に関する情報(著者、タイトル、出版社、ページ、カテゴリなど)が含まれています。実際のデータは、ユーザーがモバイル版で見たいものを選択したときに決定されます。私はデータを読み込んで、 'String [] []'に入れます。ファイルを読み込んだら、データを保持し、String [] [] = nullを設定するシングルトンオブジェクトを作成します。リストビューを作成してソートします。これで、UIのlistViewを作成できます。 – cliff2310

+0

あなたが提供したリンク(AsyncTask)を読んでいます。それは私が探していたもののように見えます。助けてくれてありがとう。 – cliff2310

+0

第2に、onCreate()でasynctaskを開始し、(アダプタを除く)すべてを設定し、onPostExecute()でアダプタ/リストビューを更新したいとします。 – dmon

0

あなたがここにAndroidのアクティビティライフサイクルを見ることができるため
感謝。ファイルのサイズに応じて、onCreate()メソッドで確認できます。また、レイアウトを設定して、ファイルの読み込みを示すProgressDialogを作成することもできます。読み込みが完了したら、ダイアログを破棄して必要なリストを作成するだけです。

+0

大きなファイルです。体の中にあるものは、実際にonCreate()の前に実行されます。私はハングアップしたくないonCreate()が行われている間、しかしおそらくそれが最善の方法です。ちょうどいくつかの選択肢を探しています。お返事をありがとうございます。 – cliff2310