数据库关闭后无法恢复活动

时间:2012-04-09 11:54:30

标签: android android-cursor

我正在使用rawQuery方法将数据列表作为Cursor并使用startManagingCursor()和stopManagingCursor()方法。 Activity1和Activity2没有问题但是当我尝试从Activity3转到Activity2时它会显示04-09 17:37:59.629: E/AndroidRuntime(6509): java.lang.RuntimeException: Unable to resume activity {com.nepways.nlocate/com.nepways.nlocate.BusinessOrganizationActivity}: java.lang.IllegalStateException: database /data/data/com.nepways.nlocate/databases/nLocateDatabaseNew.db already closed 有人帮忙吗?
更新代码

    public class BusinessActivity extends Activity implements OnItemClickListener {

    private ArrayList<Business> businessList = new ArrayList<Business>();
    private BusinessListAdapter businessListAdapter;
    private ListView lvBusiness;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.business_list);

        businessList = getIntent().getParcelableArrayListExtra("businessList");

        businessListAdapter = new BusinessListAdapter(this, businessList);

        lvBusiness = (ListView) findViewById(R.id.lvBusiness);
        lvBusiness.setAdapter(businessListAdapter);
//      lvBusiness.setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add("Search").setIcon(R.drawable.ab_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
//      return super.onCreateOptionsMenu(menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getTitle().toString().equalsIgnoreCase("Search")) {
            startActivity(new Intent(this, SearchActivity.class));
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
    }

}

1 个答案:

答案 0 :(得分:1)

请打开您的数据库,清楚地提到您的数据库已关闭。

打开数据库调用getReadableDatabase()