回答編集履歴

2 refine

yohhoy

yohhoy score 6049

2015/02/24 20:37  投稿

> そこでふと思ったのですが、staticフィールドの寿命ってどこまで持つのでしょうか?
> [...]
> ところがstaticフィールドはインスタンスに関連づかないので、この理屈で行くと
> 「常に参照され続けている」値ということになります。
その理解で正しいです。そのプロセスが終了するまでstaticフィールドから参照され続け(=インスタンスが生き続け)ます。("アプリ"ではない事に注意してください)  
 
> となると「アプリが起動している間」なのか
その理解で正しいです。そのプロセスが終了するまでstaticフィールドから参照され続け(=インスタンスが生き続け)ます。
> [...]
> (ちなみにタスクキルの動作をすると即座にnullになる模様)
> となるとアプリやActivityと結びついているわけではない・・・と、よくわからなくなってしまいました。
その推測も正しいです。Android内部では、アプリケーション ≠ プロセス となっています。アプリを終了させても内部的にはプロセスが残りますし、タスクキルは明示的にプロセスを終了させる動作そのものです。
この動作は通常OSのアプリケーションライフサイクルと異なるので、はまりどころな気がします。[ライフサイクルの理解 その2 Process](http://blogand.stack3.net/archives/129) などで解説されています。
1 refine

yohhoy

yohhoy score 6049

2015/02/24 20:36  投稿

> そこでふと思ったのですが、staticフィールドの寿命ってどこまで持つのでしょうか?
> [...]
> ところがstaticフィールドはインスタンスに関連づかないので、この理屈で行くと
> 「常に参照され続けている」値ということになります。
> となると「アプリが起動している間」なのか
その理解で正しいです。そのプロセスが終了するまでstaticフィールドから参照され続け(=インスタンスが生き続け)ます。
> (ちなみにタスクキルの動作をすると即座にnullになる模様)
> となるとアプリやActivityと結びついているわけではない・・・と、よくわからなくなってしまいました。
その推測も正しいです。Android内部では、アプリケーション ≠ プロセス となっています。アプリを終了させても内部的にはプロセスが残りますし、タスクキルは明示的にプロセスを終了させる動作そのものです。
この動作は通常OSのアプリケーションライフサイクルと異なるので、はまりどころな気がします。[ライフサイクルの理解 その2 Process](http://blogand.stack3.net/archives/129) などで解説されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る