質問: new Timer(true); mTimer.schedule( timerTask, 100, 3000); setContentView(R.layout.activity_main); } } ``` 再現手順としては、 ・Nexus 5でこのアプリを起動 ・ホームボタンと戻るボタンを交互に何回か押す ・「最近使ったアプリ」ボタンからこのアプリを選択して表示する ですが、100%というわけではないです。
回答: 起動中の状態でバックグラウンドに回ったアプリは、メモリの利用状況等に応じてシステムにより破棄される可能性があります。 終了させずにバックグラウンドに回したからといって、必ずしも次回起動時に同じ状態から再開されるとは限りません。 再度呼び出す際に以前のActivityが破棄されていた場合は、新規にActivityをインスタンス化するのでonCreate()が呼ばれます。 一度onDestroy()でログ出力をして、Activityが破棄されていないか確認してみてはどうでしょうか。 > > ホームボタンと戻るボタンを交互に何回か押す > > > この操作がどういう画面遷移を行っているのかイメージし辛いのですが、Activity起動時に戻るボタンを押した場合はそのActivityは破棄されるので、onCreate()が呼ばれるのは自然な流れです。 (ホーム画面で「戻るボタン」を押すと前に起動していたアプリに戻るようなホームアプリを使用しているのでしょうか?)