Я младший, и у меня возникла проблема.
Я использую Realm на Android (Java), и я хотел бы удалить данные из моего локального BDD, когда он закрывается. Я всегда заканчиваю свою деятельность перед тем, как начинать новую, и никогда не знаю, какой будет последняя активность, прежде чем пользователь решил закрыть приложение.
Есть ли способ выполнить код при закрытии приложения?
РЕДАКТИРОВАТЬ
Вот мой код, благодаря @ Mohanad
public class ApplicationClass extends Application {
@Override
public void onCreate() {
super.onCreate();
Realm.init(this);
RealmConfiguration mRealmConfig = new RealmConfiguration.Builder()
.schemaVersion(1)
.migration(new RealmMigrations())
.inMemory()
.build();
Realm.setDefaultConfiguration(mRealmConfig);
registerActivityLifecycleCallBack();
Log.i("XXX", "I've been created");
}
public void registerActivityLifecycleCallBack() {
ActivityLifecycleCallbacks mActivity = new ActivityLifecycleCallbacks() {
int mCounter = 0;
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
mCounter++;
Log.i("XXX", "I'm called again and again");
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
mCounter--;
if (mCounter == 0) {
Realm mRealm = Realm.getDefaultInstance();
mRealm.close();
}
}
};
}
}