質問: **グローバル変数保持クラス** ``` class MyApp: Application() { // クリップ記事リスト(ClipAdviceは自作モデル) lateinit var clipList: ArrayList override fun onCreate() { super.onCreate() } companion object { val sharedInstance: MyApp by lazy { MyApp() } } } ``` **グローバル変数にアクセスしているコード** ``` MyApp.sharedInstance.clipList.add(0, clip) ```
回答: androidにおいて、Applicationクラスに保持したデータは消えることがあります。 詳細は以下解説している記事をご確認ください。 記事中でもある様に、Activity間でデータを保持する場合、いくつか方法があります。 * Activity間でIntentを用いてデータをやり取りする + これは環境にも依存しますが上限サイズが1MB程度が限度と言われています。 * local database等を使用して永続化し、Activity毎に復元する * lateinitの代わりにnullで初期化しておき、常にnull checkを行う 古い記事なので言及されておりませんが、以下の様なInterfaceを使用することも出来ます。 * Allicationスコープで ViewModelStoreOwnerを使用する