gpt4 book ai didi

android - 应用程序在尝试从数据库中检索时进入无限循环

转载 作者:行者123 更新时间:2023-11-29 17:54:33 27 4
gpt4 key购买 nike

DBAdapter.java :

    public DBAdapter open() throws SQLException {

mDBHelper = new DBHelper(mctx,DATABASE_NAME,null,DATABASE_VERSION);
mDB = mDBHelper.getWritableDatabase();
return this;
}

public synchronized void close() {

mDBHelper.close();
}

public long insertRecord(String firstname, String middlename,
String lastname) {
ContentValues cv = new ContentValues();
cv.put(KEY_FIRSTNAME, firstname);
cv.put(KEY_MIDDLENAME, middlename);
cv.put(KEY_LASTNAME, lastname);

return mDB.insert(DATABASE_TABLE, null, cv);

}



public int deleteAll(){
return mDB.delete(DATABASE_TABLE, null, null);
}


public String getName() {
String column[] = new String[] { KEY_FIRSTNAME, KEY_MIDDLENAME,
KEY_LASTNAME };
Cursor c = mDB.query(DATABASE_TABLE, column, null, null, null, null,
null);
String name = "";
int iFirst = c.getColumnIndex(KEY_FIRSTNAME);
int iMiddle = c.getColumnIndex(KEY_MIDDLENAME);
int iLast = c.getColumnIndex(KEY_LASTNAME);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToLast()) {
name = name + c.getString(iFirst) + "\t" + c.getString(iMiddle)
+ "\t" + c.getString(iLast) + "\t";
}
c.close();
return name;

}

Profile_database_view.java :

        db = new DBAdapter(Profile_Database_View.this);
db.open();
full_name.setText(db.getName());

MainActivity.java :

        dbadapter = new DBAdapter(MainActivity.this);
dbadapter.open();
dbadapter.insertRecord(first_name, middle_name, last_name);
dbadapter.close();
}

日志:

    12-04 12:10:21.273: I/ActivityManager(60): Starting: Intent { cmp=com.example.display_from_database/.Profile_Database_View } from pid 364
12-04 12:10:21.802: D/dalvikvm(364): GC_EXTERNAL_ALLOC freed 704K, 56% free 2693K/6023K, external 2032K/2137K, paused 193ms
12-04 12:10:22.392: D/dalvikvm(364): GC_FOR_MALLOC freed 971K, 61% free 2656K/6727K, external 2379K/2971K, paused 118ms
12-04 12:10:22.853: D/dalvikvm(364): GC_CONCURRENT freed 793K, 60% free 2697K/6727K, external 2379K/2971K, paused 14ms+18ms
12-04 12:10:23.232: D/dalvikvm(364): GC_CONCURRENT freed 837K, 60% free 2703K/6727K, external 2379K/2971K, paused 26ms+7ms
12-04 12:10:23.482: D/dalvikvm(364): GC_CONCURRENT freed 854K, 60% free 2699K/6727K, external 2379K/2971K, paused 10ms+10ms
12-04 12:10:23.714: D/dalvikvm(364): GC_CONCURRENT freed 842K, 60% free 2706K/6727K, external 2379K/2971K, paused 9ms+7ms
12-04 12:10:23.952: D/dalvikvm(364): GC_CONCURRENT freed 838K, 60% free 2711K/6727K, external 2379K/2971K, paused 11ms+7ms
12-04 12:10:24.192: D/dalvikvm(364): GC_CONCURRENT freed 823K, 60% free 2739K/6727K, external 2379K/2971K, paused 10ms+9ms
12-04 12:10:24.432: D/dalvikvm(364): GC_CONCURRENT freed 852K, 60% free 2737K/6727K, external 2379K/2971K, paused 13ms+9ms
12-04 12:10:24.662: D/dalvikvm(364): GC_CONCURRENT freed 867K, 60% free 2725K/6727K, external 2379K/2971K, paused 10ms+7ms
12-04 12:10:24.912: D/dalvikvm(364): GC_CONCURRENT freed 857K, 60% free 2729K/6727K, external 2379K/2971K, paused 13ms+6ms
12-04 12:10:25.122: D/dalvikvm(364): GC_CONCURRENT freed 836K, 60% free 2752K/6727K, external 2379K/2971K, paused 8ms+8ms
12-04 12:10:25.352: D/dalvikvm(364): GC_CONCURRENT freed 875K, 60% free 2737K/6727K, external 2379K/2971K, paused 8ms+7ms
12-04 12:10:25.483: D/dalvikvm(364): GC_FOR_MALLOC freed 914K, 61% free 2670K/6727K, external 2379K/2971K, paused 108ms
12-04 12:10:25.702: D/dalvikvm(364): GC_CONCURRENT freed 731K, 59% free 2765K/6727K, external 2379K/2971K, paused 8ms+9ms
12-04 12:10:25.932: D/dalvikvm(364): GC_CONCURRENT freed 852K, 59% free 2781K/6727K, external 2379K/2971K, paused 11ms+7ms
12-04 12:10:26.163: D/dalvikvm(364): GC_CONCURRENT freed 859K, 59% free 2785K/6727K, external 2379K/2971K, paused 9ms+7ms

我能够将数据插入数据库,但是在检索数据时会进入这个无限循环,我的应用程序变成了一个空白的黑屏。有人遇到过这个吗?

大家帮帮我。这在我身上持续了一段时间,谷歌搜索说我正在做一些 CPU 密集型进程,但它就像检索数据库一样简单。

最佳答案

啊是的,将两个答案放在一起 - 你的错误是你的条件是达到 c.isAfterLast(),但是你将它递增到 c.moveToLast() 永远不会一步到位。因此,要么更改条件,要么将递增步骤更改为 c.moveToNext(),这样就没问题了。祝你好运!

关于android - 应用程序在尝试从数据库中检索时进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20368964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com