- ベストアンサー
JAVA(Android)複数のActivity
Mac用Eclipseを用いてアプリを制作しております。(始めて数週間の初心者です。) Activityを2つ以上実装し、インテントで画面遷移するまでは良いのですが、画面遷移後に元のActivityの動作が停止(リセット)してしまいます。画面遷移後も元Activityをバックグラウンドで動作させる方法はありますでしょうか? 具体的には、元Activityでタイマーを使用し、使用したまま画面遷移を行い、またActivityに戻すとタイマーが0になってしまいます。 解決方法が御座いましたら回答宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Androidについては経験がないので違っているかも知れませんが・・・ http://www.javadrive.jp/android/activity/index2.html 上記ページでActivityのライフサイクルの説明をみるにこれはアプリケーションが起動してからずっと存在し続けることが保障されるものではなくAndroid OSの都合によりストップさせられることがあるとのことです。Androidアプリケーションも他のGUIシステムと同様、画面に関する処理は特定のスレッド(UIスレッドかな?)でのみ行われるようですのでおそらくはActivityというのはUIスレッドでのみ実行される前提であって複数のActivityを複数スレッドで並行して動かすということはAndroidのプログラミングモデルに適合しないと思えます。 故にバックグラウンドで行いたい処理があるのであれば独自にスレッドを起こしてそこで行うことになると思います。その際はそのスレッドではバックグラウンド処理だけしかやってはならず画面にアクセスするような処理はUIスレッドへの処理のキューイングを通じて行うような感じだと思います。 http://techbooster.org/android/application/934/ このページをみてそう思いました。
お礼
返事が遅れてしまい、申し訳ありません。とても分かり易い解説有難う御座います。 参考にさせていただきたいと思います。