私はしばらくこれに困惑しています。私は、人の漁獲量、お気に入りの釣り場所、タックルボックスの在庫などのデータを保存するAndroidアプリに取り組んでいます。私のクラスはすべてシリアル化可能であり、これまでのところ機能しているように見えるアクティビティ間で保存およびロードできます。しかし、保存されるデータが増えるにつれて、アプリの実行が遅くなると予測しています。
私が基本的に求めているのは、アプリケーション全体でこのデータを保持する方法があるので、新しい画面が表示されるたびにデータをロードする必要はありません。私はすでに次の情報が役立つことを発見しましたが、私が理解するにはもう少し明確にする必要があります。
別のフォーラムでは、Applicationオブジェクトに詰め込むことができると述べています。
[Application]
public class MyApp : Android.App.Application {
public MyApp(IntPtr handle)
: base (handle)
{
}
public FishingData Data {get; set;}
}
次に、アクティビティ内で:
((MyApp) this.ApplicationContext).Data = value;
したがって、これまでこのアプローチを実行することを実際に聞いたことがなく、これがアプリケーションプロセス全体で実行されるかどうかはわかりません(どちらの方法でも、シリアル化を介してデータをロードする必要があると思います。これがアプリに実行してほしいことです。 :
最初のアクティビティはメインメニューであり、画面が読み込まれたときに次の操作を行う必要があります。
- 設定ファイルが見つかった場合は、シリアル化を使用して以前のFishingDataオブジェクトをロードします(これを行う方法を知っています)
- そうでない場合は、後で保存するために新しいクリーンなFishingDataオブジェクトを作成します(これも知っています)
- これでFishingDataオブジェクトができたので、すべてのアクティビティで手順1〜2を繰り返す必要がないことを確認するにはどうすればよいですか。どうすればFishingDataオブジェクトを次のアクティビティに渡し、アプリがまだ動作している間にグローバルに動作するようにすることができますか。(シリアル化を介して)一度だけロードし(<-これを行う方法がわからない)、ユーザーがこのオブジェクトにデータを追加したときにのみ保存したい(これは私が行う方法を知っています)。
どんな助けでもありがたいです。これは私を悩ませています私はこれを理解できないようです。これはよくあることのようですが、詳細な情報を見つけることができませんでした。