Androidアプリの起動時に、リソースやアセットから大きな配列を読み込み、これらのオブジェクトに複数のアクティビティを使用してアクセスしたいとします。アプリの起動時に大きなオブジェクトをロードする
StartActivity.java:
Object heavyObject;
onCreate() {
new AsyncTask<Void, Void, Exception>() {
@Override
protected Exception doInBackground(Void... params) {
try {
Assets assets = new Assets(context);
File assetDir = assets.syncAssets();
heavyObject = heavySetup(assetDir);
} catch (IOException e) {
return e;
}
return null;
}
}.execute();
...
public void goToNextActivity() {
Intent intent = new Intent(base_activity, NextActivity.class);
Bundle b = new Bundle();
b.putObject("ho", heavyObject);
intent.putExtras(b);
startActivity(intent);
finish();
}
しかし、このコピーオブジェクトを複数回とメモリの問題が発生し
今、私は私の打ち上げ活動にリソースをロードしています。どのようにして、アプリケーションのライフサイクルでオブジェクトを共有できますか?一度だけロードして保存します。