2013-07-15 19 views
1

后,我要删除我的应用程序的SQLite数据库,由于一些原因:重新创建内容提供商删除

this.deleteDatabase(contentProvider.getDatabaseName()); 

我希望重建后,我的数据库文件。

我在documentation,上面写着:

onCreate is called for all registered content providers on the application main thread at application launch time. 

这是我在做什么在OnCreate中在启动时创建的数据库:

@Override 
    public boolean onCreate() { 
     try { 
      contentProviderHelp = new ContentProviderHelp(); 

      userInfoTable = new UserInfoTable(contentProviderHelp); 
      employeeInfoTable = new EmployeeInfoTable(contentProviderHelp); 
      productsTable = new ProductsTable(contentProviderHelp); 

      db = new DbMetadata(userInfoTable, employeeInfoTable, productsTable); 
      ddlHelp = new DDLHelper(db); 

      matcher = new UriMatch(userInfoTable, employeeInfoTable, productsTable, new UriMatcher(UriMatcher.NO_MATCH)); 

      dbHelp = new DatabaseHelper(getContext(), DATABASE_NAME, DATABASE_VERSION, ddlHelp); 
      projectionMaps = new ProjectionHelper(db); 
      return true; 
     } catch (Exception e) { 
      return false; 
     } 
    } 

你能不能帮我,我怎么可以重建的ContentProvider数据库文件的删除后?

+0

可能的重复[如何强制手动删除数据库时重置内容提供程序](http://stackoverflow.com/questions/16113783/how-to-force-a-content -provider到复位时,手动删除的数据库) – njzk2

回答

1

只需在此处为您创建一个静态函数DatabaseHelper并提供当前上下文作为参数。在您的DatabaseHelper中,您可以重新创建数据库