一直在与应用程序崩溃作斗争。是时候寻求帮助了...
我是第一次使用 SQLite。我正在尝试在 ListView 中显示一个简单的事件日志。
主要活动在一个小的 ListView 中显示日志。如果单击它,它会启动另一个显示全屏 ListView 的活动。但我也遇到了从首选项屏幕返回的问题。所以问题出在主Activity上。
主 Activity 在启动应用程序时工作正常。但是从另一个活动返回时偶尔会崩溃:无法恢复活动...试图重新查询已经关闭的游标。我已经尝试了各种没有解决方案的变体。在调试的时候,好像连onResume都进不去了?
有人可以指出每段数据库代码应该去哪里(onStart,onResume,onRestart)吗?有什么线索吗?
我知道此代码基于已弃用的技术。但我想在担心创建加载器之前让它工作。
任何帮助将不胜感激。我有...
public class MainActivity extends Activity implements ...{
private ListView logView;
private SQLiteDatabase db;
private DBAdapter dbAdapter;
private Cursor cursor;
private SimpleCursorAdapter logAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
protected void onStart() {
super.onStart();
...
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onResume() {
super.onResume();
dbAdapter = new DBAdapter(this);
db = dbAdapter.getReadableDatabase();
cursor = db.query("log", null, null, null, null, null, "_id ASC");
startManagingCursor(cursor);
Log.i(TAG, "cursor="+cursor.toString());
String[] from = { "entry"};
int[] to = { R.id.row_entry };
logAdapter = new SimpleCursorAdapter(this, R.layout.log_row, cursor, from, to);
logView.setAdapter(logAdapter);
logAdapter.notifyDataSetChanged();
logView.setSelection(logView.getCount()-1);
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
...
}