0
我在我的Android应用中使用了Realm database。数据需要加密,我正在使用Realm
的加密。他们的密钥来自服务器,然后存储在设备上,但使用用户PIN加密。在Realm中注销错误加密密钥的用户
我想退出用户,如果 - 无论如何 - 钥匙被锻炼。我使用ParentActivity
类一些通用的初始化和试图做这里面onCreate
像下面,
private void initRealm() {
try {
if(MyApplication.getInstance().isRelamInitialized)
realm = Realm.getDefaultInstance();
} catch (IllegalStateException e) {
e.printStackTrace();
deleteAllAndLogout();
}
}
而且deleteAllAndLogout
类似于下,
public void deleteAllAndLogout() {
session.logoutUser();
session.removeFbData();
RealmManager.deleteAll(realm);
LoginManager.getInstance().logOut();
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
}
问题
Realm
尚未初始化,那么它应该如何清除数据wi大约realm
正在初始化?当我测试它时,它一次又一次地开始
LoginActivity
并从未停止过。
我正在初始化Realm
在Application
类。
public void initRealm() {
String encryptedKey = new Session(getApplicationContext()).getStringForKey(Session.mainEncryptedKeyForEncryption);
String key = new Cipher(getApplicationContext()).decrypt(encryptedKey);
Realm.init(getApplicationContext());
config = new RealmConfiguration
.Builder()
.encryptionKey(key.getBytes())
.deleteRealmIfMigrationNeeded()
.name(DB_NAME)
.schemaVersion(DB_VERSION)
.build();
Realm.setDefaultConfiguration(config);
isRelamInitialized = true;
}
问题
如何以及在哪里可以删除所有本地数据和注销用户时Realm
没有正确解密?