その大量のデータを読み込んで、メモリに展開するのに時間がかかってるようです。
> ただ、アプリ起動直後の1回のみ発生し、アプリ内で画面遷移(Activity起動)を繰り返して
> も発生しません(同じトップ画面のメニューボタンも同様)。
> また、一度アプリを終了させて、すぐに再起動した場合は発生しませんが、他のアプリを
> 触って再起動した場合には発生します。
AndroidのドキュメントのActivityのライフサイクルの部分
http://developer.android.com/intl/ja/reference/android/app/Activity.html#ActivityLifecycle
(英語ですがぐぐると日本語訳があるはずですし、Android開発の書籍にもあります)
を読むと分かりますが、Activityは生成後、他のActivityやサービスなどでメモリが不足し、足りなくなったときに破棄されます。ですので、他の操作をしていると、メモリ不足で破棄されて作り直し(OnCreate)となるわけです。
他にも細かい動作はありますが概要はこんな感じです。
もしそれを改善するのであれば、読み込み時にプログレス(あのくるくる回るやつ)を使って「読込中」とするのがいいのではないのでしょうか?
>
> LogCatでActivityManagerの情報が表示されますが、
> 「Displayed activity パッケージ名/クラス名:6242ms(total 6242ms)」
> のような表示がなされています。6秒かかっているということでしょうか。
> 問題ないときは100ms程度になっています。
>
> 保存データを全て削除すると再現しません。
> 原因が分からず困っていますので、どなたかお気づきの点があれば、ご教示ください。
>
> テスト機種はIS01です。
> よろしくお願いいたします。
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>
--
灘校パソコン研究部-Nada Personal Computer Users' Association
Naoya Niwa
MyBlog Mine's Blog: http://mines-blogn.blogspot.com/
Twitter: @mine_studio
http://twitter.com/mine_studio
夜子ままです、
Preferenseの分散化よりsqlのほうが実装のコストが楽じゃないのかな、
まずはデータにアクセスする部分をカプセル化してpreferenseでもsqlでも実装できるようにするような修正の進め方をすると相互で動作確認できるのでいいですよ
2010/08/29 22:41 "micco" <gou...@gmail.com>:
> ...
> 2010年8月29日16:57 micco <gou...@gmail.com>:
>
>
>
> > こんにちは。
> > miccoです。
>
> > ある記録を保存するアプリを作っています。
> > あらかじめ設定している最大件数(SharedPreferenceで約20,00...
> > このグループから退会するには、android-group-j...@googlegroups.com<android-gro-up-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/android-group-japan?hl=jaからこのグループにアクセスしてください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com...
miccoさん
江川です。
> getSharedPreferences()で得られるインスタンスは、そのプリフ
> ァレンス名で保存されているXMLファイル自体を取り込んでいるのかもしれません。
おっしゃる通りです。ファイルが大きくなればリニアに処理時間が長くなり使用するメモリ量が増えます。ファイルを分割すれば対象が小さくなるので軽減できます。
> SQLiteを使った場合でもDBファイルの読み込みは発生しそうですが、同じような問題を惹起す
> ることは無いと考えて良いでしょうか?今後のためにご教授ください。
SQLiteを使っていても、全部を読み込めば時間がかかるかもしれませんしメモリを圧迫するかもしれません。
Cursorを使って必要なだけをfetchするようにすれば回避できます。
よろしくお願いします。
------------------------------------------
EGAWA Takashi
2010/8/29 micco <gou...@gmail.com>:
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。