戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android におけるデータ管理

Android におけるデータの管理について簡単にまとめてみました。
android_data.png
Intent
他のコンポーネント(アクティビティ、サービス、ブロードキャストレシーバ)とのデータの受け渡しを行う際に使います。
設定した任意のデータに加え、コンポーネントや Android システムに関与する情報を持っています。

Bundle
画面の状態を一時的に保存するために使われます。
画面を回転してアクティビティを再生成したとき、他のアプリからリソース要求 (メモリ不足) されてプロセスがキルされたときに元の状態に復帰させるために使います。
onSaveInstanceState() で画面の状態を保存し、onRestoreInstanceState() または onCreate() で復帰します。

永続データ (Preference / SQLite / File)
アプリケーションが終了してもデータを保持していたい場合に使います。
これらは他のアプリと共有して扱うことができます。



static 変数
Android では static 変数をキャッシュ以外の目的で使ってはいけません。 (static final は除く)

Android ではアプリの終了≠プロセスの終了ではないため、static 変数がすぐに解放されるわけではありません。
そのためアプリを再開したときに static 変数が終了時のまま再開することになります。
(不要なプロセスはシステムが頻繁に終了させているため、再開時に必ず残っているというわけではなりません)

また、他のアプリがリソースを要求(メモリ不足)することによりプロセスがキルされた場合も同様です。
プロセスがキルされてもアクティビティはスタックに詰まれたままとなっているため、static 変数により状態を管理していると想定されない処理が行われる可能性があります。
例外発生時のアプリ終了も同様です⇒『Androidの例外処理


■ 参考サイト
ソフトウェア技術ドキュメントを勝手に翻訳 - 4. インテントとインテントフィルタ
ソフトウェア技術ドキュメントを勝手に翻訳 - 8. データ保存
Experiments Never Fail - Android の Static 変数はヤバい
猫好きモバイルアプリケーション開発者記録 - Androidでstatic変数が勝手にクリアされる問題と対処法
スポンサーサイト

Comments

管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。