我正在为Android创建一个应用程序。我使用Realm作为数据库。领域在整个应用程序中工作正常。现在我想从“NotificationExtender”类中插入一些数据(这将有助于接收和自定义信号通知)。这导致outOfMemory错误我该如何处理。
我的示例代码: 在“我的通知”课程中,我正在执行此操作
RealmLibrary.insertMessageToDBFromNotificationReceiver(
jsonObject.getString("data"),
jsonObject.getString("groupKey"),
jsonObject.getString("groupKey"),
mContext);
在我的RealmLibrary课程中:
Realm realm = getRealm(applicationContext);
realm.beginTransaction();
ChatMessages chatmsg = realm.where(ChatMessages.class)
.equalTo("gUid", gUID).findFirst();
int count = 0;
if (chatmsg == null) {
// Create an new object
chatmsg = realm.createObject(ChatMessages.class);
count = 1;
chatmsg.setgUid(gUID);
} else {
}
realm.commitTransaction();
我的getRealm方法:
public static Realm getRealm(Context context) {
return Realm.getDefaultInstance();
}
我如何处理这个外出的记忆。请有人告诉我哪个代码会导致错误。哪个是效率不高的代码..
注意:它只是一个示例代码。如果需要任何细节,请留下您的意见。
答案 0 :(得分:0)
我目前只有49个声望点,所以我不能对此发表评论。只是一个想法(也许这是愚蠢的,告诉我如果是这样,我会删除这个答案),你可能想要添加和使用LeakCanary并检查你是否有一些内存泄漏:
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
}
和
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
LeakCanary.install(this);
}
}
(如果您的活动未延伸LeakCanary.install(getApplication());
)
Application